2013-12-17 33 views
1

所以我試圖從php文件發送json對象數組到js。訪問從php發送到js的數組

,我使用的方法似乎是工作,因爲我用的console.log打印我收到的對象(陣列),我得到了我在下面的格式發送真正

(
[0] => {"id":"1","name":"mmdftd","phone":"5785","year":"2013","app_status":"in_progress"} 
[1] => {"id":"2","name":"shsoshsdo","phone":"58","year":"2013","app_status":"in_progress"} 
) 

不過我現在面臨的一個問題閱讀本陣

我嘗試不同的方式來訪問它下面

第一種方式:。每個函數

$(data).each(function() { 
     console.log("This| " + this); 
    console.log("ID| " + val.id); 
    console.log("Name| " + val.name); 
    console.log("Phone| " + val.phone); 
    console.log("Year| " + val.year); 
    console.log("APP Status| " + val.app_status); 
} 

然而這會導致以下錯誤

Uncaught Error: Syntax error, unrecognized expression: Array 

方式二:使用while LOOG 我使用這個條件

while(data[i] != null) 

然而這會導致一個無限循環

任何建議循環在哪種訪問這種陣列的最佳做法? 在此先感謝

+0

你必須使用數據= JSON.parse(數據); – Praveen

回答

1

在PHP:

$data = array(
    [0] => array("id"=>"1","name"=>"mmdftd","phone"=>"5785","year"=>"2013","app_status"=>"in_progress"), 
    [1] => array("id"=>"2","name"=>"shsoshsdo","phone"=>"58","year"=>"2013","app_status"=>"in_progress") 
) 

echo json_encode($data); 

於JavaScript:

讓我們假設你通過一個Ajax請求得到的數據。

$.get('url-to-php-file.php', function(data) { 
     data = JSON.parse(data); 
     // Here you can do whatever you want with the data 
    }); 
+0

1.不應該使用'POST'來檢索數據; 2.如果頭文件設置正確,jQuery能夠識別JSON,所以不需要解析。 – moonwave99

+1

1.同意。 2.我會說這是很好的做法,使用'JSON.parse' – superphonic

+0

尼斯,但由於某種原因,就像我有不得不解析你所說的解決方案,然後像第二層解析 1- var obj = jQuery.parseJSON (數據); 2-val = jQuery.parseJSON(obj); –

1

請嘗試以下...

$.each(data, function(key, value){ 
    var obj = JSON.parse(value); 
    $.each(obj, function(key2, value2){ 
    console.log(key2 + ' - ' + value2); 
    }); 
});