2011-11-03 86 views
0

我試圖根據數據庫中的信息更改元素列表的類。我認爲簡單的方法是通過一個數組。我按照如下方式在php端構建數組。JSON中的關聯數組解碼

$setClassResult = array(); 
while($row = mysql_fetch_array($result)) 
{ 
$setClassResult= array_push_assoc($setClassResult, $row['item_id'], $row['parent']); 
} 
echo json_encode(array($setClassResult)); 
break; 

這給我....

[{"830":"0","734":"830","733":"830","732":"830","735":"830","737":"830","736":"830","738":"830","739":"830","740":"830","741":"830","742":"830","872":"0","869":"872","868":"872","880":"872","964":"872"}] 

解碼並改變我用的元素.....

$.each(data, function(key, val) { 
     $("#recordsArray_"+key).toggleClass(val); 
     alert(key+" "+val); 
    }); 

警報與0[object,Object]發生一次這是因爲我創建數組的方式?我注意到的第一件事是圍繞JSON的[]

+0

而不是'array_push_assoc',你只是想'$ setClassResult [$ row ['item_id']] = $ row ['parent']'? – deceze

回答

2

無需添加額外的陣列,試着用:

echo json_encode($setClassResult); 
+0

這工作。謝謝 – maxum

0

你的結果是對象格式的數組:

[{"830":"0","734":"830","733":"830","732":"830","735":"830","737":"830","736":"830","738":"830","739":"830","740":"830","741":"830","742":"830","872":"0","869":"872","868":"872","880":"872","964":"872"}] 

所以,當你迭代,它通過第一遍歷數組&說關鍵是0 &值是一個object.so,如果您稍後迭代通過作爲對象的值,您將得到它

或as soju如果您不要求將其存儲在對象數組中但單個對象迭代一次。