使用jquery检查php数组中id的复选框

时间:2012-10-04 07:22:49

标签: php jquery arrays checkbox

我正在为包含checkboxes的表单执行编辑功能。即我提交此表格中的数据,然后在提交时有一项规定来编辑以前提交的数据。

我有一个包含提交的复选框值的数组。因此,我希望每个复选框的值都包含在php array中,我希望使用jQuery检查它们。

我在下面尝试过:

HTML:

<?php
foreach ($selections as $selection) {
echo "<tr><td>" . $selection -> Name . "</td><td><input type=checkbox id=" . $selection -> Name . " name=selections[] value=" . $selection -> id . " /></td></tr>";
}?>

SCRIPT:

var checkboxarray = <?php echo json_encode($checkboxarray) ?>;

        $.each(checkboxarray, function (i, elem){

        if(elem.name == $('input[name ="selections[]"]').attr('id')){

            $('input[name ="selections[]"]').attr('checked','checked');

            }

        })

但是,它似乎无法正常运行。

帮助表示感谢,谢谢。

3 个答案:

答案 0 :(得分:1)

你可以这样做:

$.each(checkboxarray, function (i, elem){
    if($('#'+elem.name) != 'undefined'){
        $('#'+elem.name).attr('checked', true);
    }
});

答案 1 :(得分:1)

您可以直接在选择器中查找id属性:

$.each(checkboxarray, function (){
        if($('#' + this.name).length){
            $('#' + this.name).attr('checked','checked');
        }
    });
});

答案 2 :(得分:1)

你也可以

尝试

foreach ($selections as $selection) {
    $checked    =   in_array($selection -> Name, $checkboxarray ) ? 'checked="checked"' : '';
echo "<tr><td>" . $selection -> Name . "</td><td><input type=checkbox id=" . $selection -> Name . " name=selections[] value=" . $selection -> id . " ".$checked."/></td></tr>";
}

此处$checkboxarray是已检查

的数组列表