jquery从2 json字符串构建一个复选框表单

时间:2016-05-15 17:51:26

标签: javascript php jquery json forms

我碰到了墙,因为我只是不知道我应该在google上搜索什么:(我实际上正在使用stackoverflow问问题表单中的“可能已经有你的答案的问题”,但找不到任何东西近

我正在尝试使用AJAX结果中的2个json字符串构建一个复选框表单。

第一个json字符串类别包含我只允许表单使用的所有role_id 第二个json字符串 Roles 包含用户可读的名称roleName

所以,我的HTML (我正在使用twig模板系统,所以我有{{ tags }}

<label class="checkbox-inline">
    <input type="hidden" name="has_Read[ role.id ]" value="0" />
    <input type="checkbox" name="has_Read[ role.id ]" value="1"> role.roleName
</label>

我希望我应该循环到类别 json字符串中的每个role_id,获取每个id然后将其放在has_Read[ role.id ]上,然后查看角色roleName提取role_id,以便在复选框表单中为其添加标签

分类

[
 {"id":77,"category_id":32,"role_id":1,"has_Read":1},
 {"id":75,"category_id":32,"role_id":99,"has_Read":1}
]

角色

[
 {"id":99,"roleName":"Administrators"},
 {"id":2,"roleName":"test"},
 {"id":1,"roleName":"Default User"}
]

除了选择器之外,我对jquery / js知之甚少,所以我不知道从哪里开始构建表单,将这些json字符串传递给php似乎很荒谬。有人可以教我从哪里开始吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

首先将roles转换为中间哈希对象,由角色ID键入:

var roles_ = {};
for(var i=0; roles.length; i++) {
    roles_[roles[i].id] = roles[i];
}

然后可以使用.roleName哈希作为查找,为每个类别赋予roles_属性:

for(var i=0; i<categories.length; i++) {
    categories[i].roleName = roles_[categories[i].role_id].roleName;
}

现在,增强型categories数组包含所有可用数据:

[
    {"id":77, "category_id":32, "role_id":1, "has_Read":1, "roleName":"Default User"},
    {"id":75, "category_id":32, "role_id":99, "has_Read":1 "roleName":"Administrators"}
]