javascript - PHP 'check all' 中的 'while loop' 复选框 (JavaScript)

标签 javascript php checkbox

我正在寻找一种在以下代码中使用 JavaScript 的方法。我希望带有 id = alles 的复选框检查 while 循环 期间打印的所有可用复选框。

<form id="andere" name="andere" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
      <fieldset><legend>Selecteer de klassen waaraan je de persoon wilt koppelen:</legend>
        <table>
          <tr>
            <td><input type="checkbox" id="alles" name="alles" value="">Selecteer alle klassen</td>
          </tr>
          <tr>
<?php
  $query='SELECT oc_klas.klascode, oc_klas.klas_ID FROM oc_klas ORDER BY oc_klas.klas_ID';
  $result=mysqli_query($mysqli,$query) or die('<p>Kan query: '.$query.' niet uitvoeren.</p>');
  $aantalRijen = mysqli_num_rows($result);
  $KLASSEN_PER_RIJ = 10;
//bereken de colspan van de laatste kolom
  $fill=$aantalRijen%$KLASSEN_PER_RIJ;

  $fill=$KLASSEN_PER_RIJ-$fill;
  $teller=1;

  while($myrow=mysqli_fetch_row($result))
  {
    print('<td><input type="checkbox" id="klas'.$myrow[1].'" name="klas'.$myrow[1].'" value="'.$myrow[1].'">'.$myrow[0].'</td>');
    if($teller%$KLASSEN_PER_RIJ==0)
    {
      print('</tr><tr>');
    }
    $teller++;
  }
  print('</tr></table>');
?>

通常我依赖onclick函数:

onclick="for(c in document.getElementsByName('klas')) document.getElementsByName('klas').item(c).checked = this.checked"

但是由于 ID 现在不相同,我不确定如何解决这个特定问题。 有什么想法吗?

使用给定但不起作用的解决方案进行更新

<form id="andere" name="andere" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
      <fieldset><legend>Selecteer de klassen waaraan je de persoon wilt koppelen:</legend>
        <table>
          <tr>
            <td><input type="checkbox" id="alles" name="alles" value="" onclick="for(c in document.getElementsByClassName('alleklassen')) document.getElementsByName('klas').item(c).checked = this.checked">Selecteer alle klassen</td>
          </tr>
          <tr>
<?php
  $query='SELECT oc_klas.klascode, oc_klas.klas_ID FROM oc_klas ORDER BY oc_klas.klas_ID';
  $result=mysqli_query($mysqli,$query) or die('<p>Kan query: '.$query.' niet uitvoeren.</p>');
  $aantalRijen = mysqli_num_rows($result);
  $KLASSEN_PER_RIJ = 10;
//bereken de colspan van de laatste kolom
  $fill=$aantalRijen%$KLASSEN_PER_RIJ;

  $fill=$KLASSEN_PER_RIJ-$fill;
  $teller=1;

  while($myrow=mysqli_fetch_row($result))
  {
    print('<td><input type="checkbox" class="alleklassen" id="klas'.$myrow[1].'" name="klas'.$myrow[1].'" value="'.$myrow[1].'">'.$myrow[0].'</td>');
    if($teller%$KLASSEN_PER_RIJ==0)
    {
      print('</tr><tr>');
    }
    $teller++;
  }
  print('</tr></table>');
?>

最佳答案

为所有复选框分配一个类并使用 document.getElementsByClassName 将是最简单的解决方案。

关于javascript - PHP 'check all' 中的 'while loop' 复选框 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34002881/

相关文章:

javascript - 仅在 IE 中的 JS 数组推送错误

javascript - 是否可以将文本选择限制为当前元素?

php - 获取子数组键php

javascript - 如何动态设置div为多行两列

PHP 生成随机用户名

javascript - Mootools "Cannot read property ' 调用“未定义”

javascript - 我可以声明一个可以从任何对象内调用的函数吗?

java - 如何将多个 &lt;input type =“checkbox”/> 作为数组发送到 Java servlet?

javascript - AngularJs:删除项目后取消选中复选框

javascript - 检查模式内的所有复选框功能