javascript - 根据 json 数组值选择 html 复选框

标签 javascript php jquery arrays json

我有一个表单,我将多个复选框项目作为数组发送到 Controller ,

<?php
    foreach($groupsArray as $group)
        {
?>
<label>
<input type="checkbox" class="icheck" name="groups[]" id="groups" value="<?php echo $group["id"];?>"> <?php echo $group['name']?> </label>

<?php
}
?>

数据库中的复选框值更新一切正常,

现在,我正在做的是,从数据库获取值,我需要检查存储在数据库中的值,

我收到以下来自 PHP 的 json 响应<

groups: [{user_id: "2", group_id: "4", id: "4", name: "system Creators",…}]

下面我使用了AJAX

if(objData.groups[0].group_id == $("#groups").val())
    {
        $("#groups").iCheck('check');
    }

使用这个$("#groups").val(),它总是采用第一个复选框的值,所以有问题, 如何使用 Json 比较所有复选框的值? 另外,如果组数组将有多个值,则意味着多维数组,那么更多组?

提前致谢!

最佳答案

您需要能够知道哪个复选框与哪个数据库值相关。

这就是ID复选框上的用途。你把它们都当作“groups” - 这是不好的做法。

使用:(注意动态id属性)

<?php
    foreach($groupsArray as $group)
        {
?>
<label>
<input type="checkbox" class="icheck" name="groups[]" id="chk<?php echo $group["id"];?>" value="<?php echo $group["id"];?>"> <?php echo $group['name']?> </label>

<?php
}
?>

然后循环数据库中的组对象:

for(var i = 0; i < groups.length; i++) {
   var chk = document.getElementById("chk" + groups[i].id);
   chk.checked = true;
}

关于javascript - 根据 json 数组值选择 html 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33909903/

相关文章:

javascript - 如何将一个元素移动到另一个元素中?

Javascript:通过对象搜索的运行时间?

php - 非英语不支持来自 $.post jquery codeigniter 的 mysql 查询

php - 结果分页(mysql+php)取决于下拉菜单过滤器

javascript - jquery插件Tokeninput的问题

javascript - 原型(prototype)中的 getAttribute 但抛出 undefined

javascript - Leaflet将网格层放在GeJson LayerGroup之上

php - 新的引用不给出警告

呈现所有 htm 后加载 jquery ui 选项卡

javascript - codeigniter 在提交之前使用 javascript 确认弹出框