Javascript document.getElementsByName () с массивом, назначенным на основе переменной - PullRequest
0 голосов
/ 09 марта 2019

Это флажки, которые у меня сейчас есть image , и когда я нажимаю на первый флажок «Апрель 2015», он должен выглядеть следующим образом checkedAll . Имя моего текущего флажка создано на основе цикла $ i name='check_all[".$i."]'. и флажки должны быть названы как "

checkbox[1], checkbox[2],.. "

но в javascript, как я должен позволить ввести номер цикла в document.getElementsByName("check_all[]"). Цикл основан на строке базы данных, поэтому я не хочу делать ее жестко запрограммированной. Как мне дать document.getElementsByName("check_all[]") получить

document.getElementsByName("check_all[2]") or document.getElementsByName("check_all[3]")

в зависимости от функции.

Функция

public function showMY(){ 
..other codes...
$i = 1;
 while($row = mysqli_fetch_assoc($viewSQL)) {
    $MY= $row['MY'];
    echo "<tr>
          <td><input type='checkbox' name='' onclick=\"toggle2(this); showMe2('divCheckbox');\" >
          </td>
          <tr>
          <td><input type='checkbox' class='some_cls' name='check_all[".$i."]' value='' onclick='showMe2('divCheckbox')'></td>";
$i++;
}
}

Javascript

function toggle2(source) {
  var checkboxesCls = document.querySelectorAll('input.some_cls');
  for(var i=0, n=checkboxesCls.length;i<n;i++) {
    checkboxesCls[i].checked = source.checked;
  }
}

function showMe2 (box) {
    var chboxs = document.querySelectorAll('input.some_cls');
    var vis = "none";
    for(var i=0;i<chboxs.length;i++) { 
        if(chboxs[i].checked){
         vis = "inline";
            break;
        }
    }
    document.getElementById(box).style.display = vis;
}

Мне было очень трудно решить эту проблему, пожалуйста, помогите.

Отредактировано: Это последний код, который я реализовал. Текущая проблема заключается в том, что он будет автоматически проверять данные ниже «Январь 2016», когда я просто хочу проверить все данные ниже «Апрель 2015». изображение

1 Ответ

0 голосов
/ 09 марта 2019

Вы можете добавить атрибут класса во входной тег:

"<input type='checkbox' class='some_cls' name='check_all[".$i."]' onclick=\"toggle2(this); showMe2('divCheckbox');\" >"

Затем в JavaScript используйте querySelectorAll():

var chboxs = document.querySelectorAll('input .some_cls');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...