我使用php在数组表mysql上显示数据,并使用jquery函数选中/取消选中所有复选框。 但问题是我使用jQuery函数来检测并执行基于复选框的类的功能。 我使用了一个复选框数组,因此chackbox和类的名称可以根据mysql中的数据增加。
Jquery代码:
<SCRIPT language="javascript">
$(document).ready(function() {
$('#selectall').click(function(event) { //on click
if(this.checked) { // check select status
$('.PILIH').each(function() { //loop through each checkbox
this.checked = true; //select all checkboxes with class "checkbox1"
});
}else{
$('.PILIH').each(function() { //loop through each checkbox
this.checked = false; //deselect all checkboxes with class "checkbox1"
});
}
});
});
</SCRIPT>
PHP代码:
<a href="add-komitmen.php" style="text-decoration:none;"><input type="button" value="+Add Komitmen"/></a> <input type="submit" value="Hapus" name="HAPUS" />
<!--<input type="checkbox" id="selectall"/>-->
<br>
<div class="scroll">
<?php
$sql2 = "Select master_outlet.ID_OUTLET, master_outlet.NAMA_OUTLET, tb_komitmen.ID_OUTLET
from master_outlet, tb_komitmen
where master_outlet.ID_OUTLET = tb_komitmen.ID_OUTLET group by master_outlet.ID_OUTLET";
$hasil2 = mysqli_query($mysqli, $sql2);
while($data2 = mysqli_fetch_array($hasil2)) {
$yoo = $data2[ID_OUTLET];
$outlet = $data2[NAMA_OUTLET];
//echo $yoo;
echo "<table border='1' cellspacing='0' width='100%'>
<thead>
<tr><th width='9%'>Check <input type='checkbox' id='selectall'/></th>
<th width='5%'>No.</th>
<th>$outlet</th>
<th width='17%'>Komitmen</th>
<!-- <th>Date</th>-->
<th width='10%'>Detail</th>
</tr>
</thead>
<tbody>";
$sql = "Select AA.* from(SELECT tb_komitmen.ID_KOMITMEN AS ID,
master_outlet.NAMA_OUTLET AS NAMA_OUTLET,
master_produk.NAMA_PRODUK AS NAMA_PRODUK
,tb_komitmen.KOMITMEN AS KOMITMEN, master_outlet.ID_OUTLET AS ID_OUTLET
FROM tb_komitmen, master_outlet, master_produk
WHERE master_outlet.ID_OUTLET = tb_komitmen.ID_OUTLET
AND master_produk.ID_PRODUK = tb_komitmen.ID_PRODUK) as AA where ID_OUTLET = '$yoo'";
$hasil = mysqli_query($mysqli, $sql);
$num_results = mysqli_num_rows($shasil);
if($hasil)
{
if(mysqli_num_rows($hasil)!=0) {
$no = 1;
while($data = mysqli_fetch_array($hasil)) {
//$min = $data[KOMITMEN];
echo "<tr>";
echo "<td align='center'><input type='checkbox' value='$data[ID]' name='PILIH[]' class='PILIH' ></td>";
echo "<td align='center'>$no</td>";
//echo "<td align='center'>$data[NAMA_OUTLET]</td>";
echo "<td align='center'>$data[NAMA_PRODUK]</td>";
echo "<td align='center'>$data[KOMITMEN]</td>";
//echo "<td align='center'>$data[TGL]</td>";
echo "<td align='center'><a href='detail-stc-otl-produk.php?ID=$data[ID]' style='text-decoration:none;'><input type='button' value='detail'></a></td>";
echo "</tr> ";
$no++;
}
}
echo "<br> ";
}
}
echo " </tbody>
</table>" ;
?>
</div>
</form>
上述代码的概述。 如果我点击检查全部,则所有复选框将全部检查。 我希望如果我点击检查第一个表中的所有复选框都是检查。 如果我点击2,则仅检查表2中的所有仅支票复选框。
答案 0 :(得分:0)
试试这个:
$(document).ready(function() {
$('#selectall').click(function(event) { //on click
if(this.checked) { // check select status
$(this).parent("table").find("input[type=checkbox]").attr("checked",true);
}else{
$(this).parent("table").find("input[type=checkbox]").attr("checked",false);
}
});
});
答案 1 :(得分:0)
更改此代码:
<input type='checkbox' id='selectall'/>
进入(不需要增量ID)
<input type='checkbox' class='selectall'/>
<强> JS 强>
$(document).ready(function() {
$(document).on('click','.selectall', function(event) { // better use event delegation if you add the data dynamically
if(this.checked) {
$(this).parent('table').find('.PILIH').prop('checked', true);
}else{
$(this).parent('table').find('.PILIH').prop('checked', false);
}
});
});
答案 2 :(得分:0)
$('#allCheck').click(function(event) {
if (this.checked) {
$('.chk').each(function() {
this.checked=true;
});
} else {
$('.chk').each(function(){
this.checked=false;
});
}
});
将id checkall放在要从中检查所有复选框的复选框上。要在哪个复选框上单击“应用chk类”。并在javascript标签中写上面的代码。有时jQuery标签不起作用。然后你需要使用document.ready函数/你可以在body的末尾编写js代码。这样你的页面加载速度就会很快。