2016-05-15 66 views
1

我打了一面牆,因爲我只是不知道我應該在谷歌搜索什麼:(我實際上玩的是stackoverflow問問題形式爲「可能已經有你的問題回答」,但無法找到附近jquery從2 json字符串構建一個複選框形式

我想建立使用2 JSON字符串從AJAX結果的複選框形式什麼。

第一個JSON字符串類別包含所有role_id我只允許是使用形式爲 而第二個json字符串角色包含其用戶可讀的名稱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> 

我希望我應該循環到每一個role_id類別 JSON字符串,獲取每個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

第一變換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"} 
] 
+0

好戲。我將'$ .post()'轉移到'$ .ajax()'後檢查它,因爲顯然,我不能將'$ .post()'結果保存到全局變量 –

+0

非常感謝! –

+1

不用擔心。請享用。 –