[英]Passing array through AJAX from php to javascript
我需要從腳本 php 生成一個數組。 我有數據庫中每個用戶的緯度和經度。 我使用此代碼(file.php)從數據庫中獲取值:
$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 中數組是正確的(如果我 echo array[25] 我獲得了正確的值)在 Javascript 中我獲得了“未定義”。 如何以正確的方式獲取數組? 謝謝!
編輯:用 json_encode($array) 編碼后; 在 php 和 JSON.parse(result) 中 javascript 似乎不起作用。 在控制台中,我有數組,但我無法訪問它的值。 (Array[0] 給了我“未定義”)。
用這個
echo json_encode($array);
在服務器端
和
var arr=JSON.parse(result);
在客戶端
正如 Ruslan Polutsygan 提到的,你使用
echo json_encode($array);
在 PHP 端。
在 Javascript 端,您可以簡單地將 DataType 添加到 $.post()-Function:
$.post(
'./file.php',
function( result ){
console.log(result);
},
'json'
);
結果參數是解析后的 JSON 數據。
您還可以在 PHP 腳本中設置正確的 Content-Type。 然后 jQuery 應該自動解析從你的 PHP 腳本返回的 JSON 數據:
header('Content-type: application/json');
看
http://api.jquery.com/jQuery.post/
http://de3.php.net/json_encode
您需要將 php 數組轉換為 json,請嘗試:
echo json_encode($array);
jQuery 應該能夠看到它返回的 json 並自動從中創建一個 javascript 對象。
$.post('./file.php', function(result)
{
$.each(result, function()
{
console.log(this.Latitude + ":" + this.Longitude);
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.