[英]A 'check all' checkbox (JavaScript) in a PHP 'while loop'
我正在尋找一種在以下代碼中使用JavaScript的方法。 我希望id = alles
的復選框檢查while loop
期間打印的所有可用復選框。
<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是最簡單的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.