我试图从表中选择所有复选框(选中所有/取消选中所有函数),但似乎做不好,因为我看到的所有解决方案都使用了一个表单和单独的输入复选框,但我的代码是从函数中调用的,以回显存储在数据库表中的结果。我需要用户能够选中第一个复选框(目前什么都不做),从而选中所有其他复选框。请有人帮助我如何实现这一点,以下是我一直试图使用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>
您需要等待DOM完成加载,以便您的JS代码了解复选框。
像这样的东西(放在头上或身上,没关系):
<script type="text/javascript">
$(document).ready(function(){
$('.chk_boxes').click(function(){
$('.chk_boxes1').attr('checked',$(this).is(':checked'));
}
});
</script>
对于那些将来可能需要帮助的人,我最终使用了这段代码,它现在运行得很好:
<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>