动态列表复选框问题

时间:2014-02-10 12:20:50

标签: javascript php mysql list

我的代码可以在JSFIDDLE

中找到

我对列表中的动态复选框选择有疑问。 如果我检查parent1 checkbox,则只应检查parent 1的子项。

如果我检查Parent1, Category 1.1, Category 1.2, Category 1.3就像只检查一样 如果我取消选中Parent 1, the childrens,也可以取消选中。

由于这些值来自foreach循环中的数据库,我在下面的代码中引用了这些值。

这是我的代码。

<div class="middle-right">
        <ul class="mid-right-list">
            <?php   
                foreach($pntrs AS $ps)
                {
                $catrs=$media->Catgselectn($ps['parent_id'],'sales_catmgmt');
            ?>

            <li><b>+ <?php echo $ps['parent_name'];?></b>

            <?php
                foreach($catrs AS $cg)
                {
            ?>
            <ul>
                <li><input type="checkbox" class="checkbox1" name="catg[]" value="<?php echo $cg['cat_id']; ?>"><?php echo $cg['cat_name']; ?></li>
            </ul>
            <? } ?>
              </li> 
             <?php
            }
            ?>
        </ul>
    </div>

2 个答案:

答案 0 :(得分:2)

这是Jquery解决方案。你可以使用jquery。 JsFriddle

$(function () {
    $("input[type='checkbox']").change(function () {
        $(this).siblings('ul')
            .find("input[type='checkbox']")
            .prop('checked', this.checked);
    });
});

答案 1 :(得分:0)

一种方法 - 你可以为父id编写一个jquery触发器,它包含不同的属性。然后检查哪个父复选框,找到该ID然后相应地标记这些子复选框。

触发器示例: -

$(document).ready(function() {
   $('body').delegate('.parent_class_of_checkbox', 'click', function(evt) {
        // here mark checked to child checkbox.
    });
});