0

今天我目前正在使用“ Checkbox”,只是一个小问题。我的第一页有一个下拉列表,我选择项目“DropDown 1”,然后单击“提交”按钮,然后它将转到下一页。因此,第二页将仅使用复选框加载“DropDown 1”下的所有项目。

我的问题是:

如何使用复选框“Check All”来检查它们,其中“DropwDown 1”中的项目来自我的数据库 [MySQL]。

这是我在第二页中的代码:

    <input type="checkbox" name="all" id="all" /> <label for='all'>All</label>
<?php
$dropdown_value = (string)$_POST["id"];
echo "<br/>";
if ($dropdown_value == 'All Building') 
{

     $all = mysql_query("SELECT fldBldgName FROM tblbuildings");
        while ($row = mysql_fetch_array($all))
           {
                echo "<tr><td>";

                echo "<input type='checkbox' name='play[]' class='chk_boxes1' value='" . $row['fldBldgName'] . "'>";
                echo $row['fldBldgName'];

                echo "</td></tr><br/>";
           }
}

    ?>
    <script>
  $(document).ready(function(){
$('input[name="all"]').bind('click', function(){
var status = $(this).is(':checked');
$('input[type="checkbox"]').attr('checked', status);
});
});
    </script>
4

2 回答 2

0

尝试监听元素change上的事件。在使用“已检查”之类的“二进制”属性时,.chk_boxes您还应该使用prop而不是:attr

$('.chk_boxes').on('change', function(){
    $('.chk_boxes1').prop('checked', $(this).prop('checked'));
});

http://api.jquery.com/prop/

您还需要将所有tr/td元素包装在一个table元素中。:

<table>
<?php
...
?>
</table>

a 之后不需要br元素trtr将始终从新行开始。

于 2013-06-13T16:20:53.977 回答
0

检查属性

echo "<input type='checkbox' class='chk_boxes1' name='play[]' value='".$row['fldBldgName']. "' checked>";

为什么 a<br>在桌子上?

编辑

试试这个:

    echo '<div><input type="checkbox" class="checkall"> Check all</div>';
 $all = mysql_query("SELECT fldBldgName FROM tblbuildings");
        while ($row = mysql_fetch_array($all))
           {

           echo "<div><input type='checkbox' name='play[]' class='chk_boxes1' value='" . $row['fldBldgName']."'>";
           echo $row['fldBldgName'];."</div>";

           }

和 jQuery 函数:

$(function () {
    $('.checkall').on('click', function () {
        $(this).closest('fieldset').find(':checkbox').prop('checked', this.checked);
    });
});

http://jsfiddle.net/H37cb/210/

于 2013-06-13T16:31:28.243 回答