3

我需要从脚本 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 中数组是正确的(如果我回显数组 [25] 我获得正确的值)在 Javascript 中我获得“未定义”。如何以正确的方式获取数组?谢谢!

编辑:用 json_encode($array); 编码后 在 php 和 JSON.parse(result) 在 javascript 中似乎不起作用。在控制台中我有数组,但我无法访问它的值。(Array[0] 给了我“未定义”)。

4

3 回答 3

20

用这个

echo json_encode($array);

在服务器端

var arr=JSON.parse(result);

在客户端

于 2013-01-23T13:29:24.583 回答
1

正如 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

于 2013-01-23T13:35:15.060 回答
0

您需要将php数组转换为json,尝试:

echo json_encode($array);

jQuery 应该能够看到它返回的 json 并自动创建一个 javascript 对象。

$.post('./file.php', function(result)
{    
     $.each(result, function()
     {
         console.log(this.Latitude + ":" + this.Longitude);
     });
});
于 2013-01-23T13:34:19.490 回答