簡體   English   中英

將數組通過 AJAX 從 php 傳遞到 javascript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM