2013-03-02 142 views
0

在PHP我有這樣的事情:PHP,JS創建JSON數據

$i=1; 
foreach ($result as $row){ 
    $outp['fields'][$i]['id']=$row['id']; 
    $outp['fields'][$i]['x']=$row['x']; 
    $outp['fields'][$i]['y']=$row['y']; 
    $outp['fields'][$i]['type']=$row['type']; 
    $i++; 
} 
echo json_encode($outp) 

而在JS:

success: function(data) { 
    var map = eval('(data)'); 
} 

這裏是JSON輸出:

{"fields": 
    {"1":{"id":9521,"x":21,"y":96,"type":2}, 
     "2":{"id":9522,"x":22,"y":96,"type":3}, 
     "3":{"id":9523,"x":23,"y":96,"type":1}, 
     "4":{"id":9930,"x":30,"y":100,"type":3} 
    } 
} 

我想爲每個字段編寫html代碼(在這種情況下是4個字段)。 我該怎麼辦?這可能將var地圖轉換爲數組?

感謝

回答

0

試試這個:

for(var i=1;i<=Object.keys(map["fields"]).length;i++){ 
    console.log(map["fields"][i]["id"]); //id 
    console.log(map["fields"][i]["x"]); //x 
    console.log(map["fields"][i]["y"]); //y 
} 
+0

優秀!但如果我想寫這樣的內部循環像這樣 $(「#map」)。append(「

」);它只追加3個字段(循環變爲50x),哪裏會出問題? – dontHaveName 2013-03-02 10:58:41

+0

你的意思是地圖[「字段」中有50個元素?另外,我忘了在for循環中寫<=並更新我的解決方案。 – haitaka 2013-03-02 11:05:00

+0

是的,有50個元素,但其寫作只有3 :( – dontHaveName 2013-03-02 11:07:41