我试图从我的表中选中所有复选框(选中所有/取消选中所有功能),但似乎无法正确使用,因为我见过的所有解决方案都使用表单和单独的输入复选框,但我的代码是从函数内调用,以回显我的数据库表中存储的结果。我需要用户能够检查第一个复选框(当前什么也不做),从而导致选中所有其他复选框。请有人协助我如何使用它,这是我尝试使用php和jquery实现的代码:
function BuildPersonResultTable($result){
$personTable= "<table id='main-db' border='1'>";
$personTable= $personTable . "<tr>";
$personTable= $personTable . "<th><input type='checkbox' class='chk_boxes' /></th>";
$personTable= $personTable . "<th>ID</th>";
$personTable= $personTable . "<th>First Name</th>";`
$personTable= $personTable . "<th>Surname</th>";
$personTable= $personTable . "<th>E-mail</th>";
$personTable= $personTable . "<th>Phone Number</th>";
$personTable= $personTable . "<th>Parent</th>";
$personTable= $personTable . "<th>Volunteer</th>";
$personTable= $personTable . "<th>Business Contact</th>";
$personTable= $personTable . "<th></th>";
$personTable= $personTable . "<th></th>";
$personTable= $personTable . "</tr>";
while($row = mysqli_fetch_array($result))
{
$personTable= $personTable . BuildPersonResultRow($row);
}
$personTable= $personTable . "</table>";
return $personTable;
}
function BuildPersonResultRow($row){
$personTableHtml = "<tr>";
$personTableHtml = $personTableHtml . "<td width='60px' id='chooseSender'>";
$personTableHtml = $personTableHtml . "<input type='checkbox' class='chk_boxes1' name='id_list[]' value='" . $row['id'] ."'/>";
$personTableHtml = $personTableHtml . "</td>";
$personTableHtml = $personTableHtml . "<td>" . $row['id'] . "</td>";
$personTableHtml = $personTableHtml . "<td>" . $row['name'] . "</td>";
$personTableHtml = $personTableHtml . "<td>" . $row['surname'] . "</td>";
$personTableHtml = $personTableHtml . "<td>" . $row['email'] . "</td>";
$personTableHtml = $personTableHtml . "<td width='70'>" . $row['alt_contact'] . "</td>";
$personTableHtml = $personTableHtml . "<td>" . boolToYesNo($row['parent']) . "</td>";
$personTableHtml = $personTableHtml . "<td>" . boolToYesNo($row['volunteer']) . "</td>";
$personTableHtml = $personTableHtml . "<td>" . boolToYesNo($row['business']) . "</td>";
$personTableHtml = $personTableHtml . '<td><a class= "side-btns" href="edit.php?id=' . $row['id'] . '">Edit</a></td>';
$personTableHtml = $personTableHtml . '<td><a class= "side-btns" href="delete.php?id=' . $row['id'] . '">Remove</a></td>';
$personTableHtml = $personTableHtml . "</tr>";
return $personTableHtml;
};
And the HTML code:
<html>
<head>
<link rel="stylesheet" type="text/css" href="CSS/DbCSS.css">
<script type="text/javascript" src="jquery-1.6.4.min.js">
$('.chk_boxes').click(function(){
var chk = $(this).attr('checked')?true:false;
$('.chk_boxes1').attr('checked',chk);
});
</script>
</head>
答案 0 :(得分:1)
您需要等待DOM完成加载,以便您的JS代码知道复选框。
像这样的东西(把它放在头部或身体里,并不重要):
<script type="text/javascript">
$(document).ready(function(){
$('.chk_boxes').click(function(){
$('.chk_boxes1').attr('checked',$(this).is(':checked'));
}
});
</script>
答案 1 :(得分:0)
对于那些将来可能需要帮助的人,我最终使用了这段代码,现在它完美无缺:
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('.chk_boxes').click(function(){
$('.chk_boxes1').prop('checked', this.checked);
});
});
</script>
</head>