【问题标题】:jquery Build a checkbox form from 2 json stringjquery 从 2 个 json 字符串构建一个复选框表单
【发布时间】:2016-05-15 17:51:25
【问题描述】:

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

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

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

我希望我应该循环到 Category json 字符串中的每个 role_id,获取每个 id,然后将其放在 has_Read[ role.id ] 上,然后查看 Roles 以提取roleNamerole_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 似乎很荒谬。谁能教我从哪里开始?

谢谢!

【问题讨论】:

    标签: javascript php jquery json forms


    【解决方案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"}
    ]
    

    【讨论】:

    • 绝招。将$.post() 转移到$.ajax() 后我会检查它,因为显然,我无法将$.post() 结果存储到全局变量
    • 非常感谢兄弟!
    • 不用担心。享受吧。
    猜你喜欢
    • 2012-01-22
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多