2011-11-03 85 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如果您不要求将其存储在对象数组中但单个对象迭代一次。