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

jquery Build a checkbox form from 2 json string

本文关键字:一个 复选框 表单 2个 json 字符串 构建 jquery      更新时间:2023-09-26

我碰壁了,因为我不知道我应该在谷歌上搜索什么:(我实际上在玩stackoverflow的"可能已经有你答案的问题"提问表,但在附近找不到任何东西

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

第一个json字符串Category包含仅允许表单使用的所有role_idI第二个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>

我希望我应该循环到Categoryjson字符串中的每个role_id,获取每个id,然后将其放在has_Read[ role.id ]上,然后查看Rolesrole_id提取roleName,以在复选框形式中标记它

类别

[
 {"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似乎很荒谬。有人能教我从哪里开始吗?

谢谢!

首先将roles转换为一个中间散列对象,由角色id:键控

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

然后,可以使用roles_散列作为查找,为每个类别指定一个.roleName属性:

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"}
]