2013-01-23 86 views
3

我需要從腳本php中生成一個數組。我有一個數據庫中的每個用戶的緯度和經度。 我從DB中的值與該代碼(file.php):通過AJAX從PHP傳遞數組到javascript

$query = "SELECT Latitude, Longitude FROM USERS"; 
$result=mysql_query($query); 
$array=array(); 
while ($data = mysql_fetch_array($result)) { 
    $array[]=$data['Latitude']; 
    $array[]=$data['Longitude']; 
} 

echo $array; 

和我請使用Ajax與此代碼:

$.post('./file.php', 
    function(result){  
     alert(result); 
    }); 

但即使在腳本PHP陣列是正確(如果我回聲數組[25]我獲得正確的值)在Javascript中我得到「未定義」。 如何以正確的方式獲得數組? 謝謝!

編輯:用json_encode($ array)編碼後;在PHP和JSON.parse(結果)在JavaScript似乎不工作。 在控制檯中我有數組,但我無法訪問它的值。 (數組[0]給了我「未定義」)。

+0

如果你的PHP腳本正常工作,輸出什麼,你不應該在JavaScript中得到'undefined' 。 – Amberlamps

回答

18

使用本

echo json_encode($array); 

在服務器端

var arr=JSON.parse(result); 

在客戶端

+0

如果我做了arr [0]即使解析後,結果警報給了我正確的數組 – user1903898

+0

登錄到控制檯收到的結果並粘貼在這裏,我得到「未定義」。 –

+0

如果I型在控制檯的常用3獲得:陣列[1164] [0 ... 99] 0: 「45.4655」 1: 「9.18652」 2: 「45.4655」 3:「9。18652" 4: 「45.4655」 5: 「9.18652」 6: 「45.4655」 7: 「9.18652」 8: 「45.4655」 9: 「9.18652」 10: 「45.4655」 ECC ECC – user1903898

0

您需要的PHP數組到JSON轉換,嘗試:

echo json_encode($array);

jQuery應該能夠看到它的json被返回並自動創建一個javascript對象。

$.post('./file.php', function(result) 
{  
    $.each(result, function() 
    { 
     console.log(this.Latitude + ":" + this.Longitude); 
    }); 
}); 
+0

jQuery爲你解析? – Amberlamps

1

由於魯斯蘭Polutsygan提到的,你岑在PHP端使用

echo json_encode($array); 

的Javascript端可以將數據類型簡單地添加到$。員額() - 功能:

$.post(
    './file.php', 
    function(result){  
    console.log(result); 
    }, 
    'json' 
); 

,結果參數是解析JSON的數據。

您還可以在您的PHP腳本中設置正確的Content-Type。然後,jQuery的應該全自動解析JSON數據從你的PHP腳本返回:

header('Content-type: application/json'); 


http://api.jquery.com/jQuery.post/
http://de3.php.net/json_encode