从函数内的数组中选择所有复选框


Select all checkboxes from an array within a function

我试图从表中选择所有复选框(选中所有/取消选中所有函数),但似乎做不好,因为我看到的所有解决方案都使用了一个表单和单独的输入复选框,但我的代码是从函数中调用的,以回显存储在数据库表中的结果。我需要用户能够选中第一个复选框(目前什么都不做),从而选中所有其他复选框。请有人帮助我如何实现这一点,以下是我一直试图使用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>