通过AJAX将数组从php传递到javascript
我需要从php脚本生成一个数组。我有数据库中每个用户的纬度和经度。 我使用以下代码(file.php)从数据库中获取值: 我用以下代码调用ajax:通过AJAX将数组从php传递到javascript,php,javascript,mysql,jquery,Php,Javascript,Mysql,Jquery,我需要从php脚本生成一个数组。我有数据库中每个用户的纬度和经度。 我使用以下代码(file.php)从数据库中获取值: 我用以下代码调用ajax: $.post('./file.php', function( result ){ alert(result); }); 但是,即使在php脚本中数组是正确的(如果我回显数组[25],我获得了正确的值),在Javascript中,我也获得了“未定义”。 如何以正确的方式获取阵列?? 谢谢 编辑:使用js
$.post('./file.php',
function( result ){
alert(result);
});
但是,即使在php脚本中数组是正确的(如果我回显数组[25],我获得了正确的值),在Javascript中,我也获得了“未定义”。
如何以正确的方式获取阵列??
谢谢
编辑:使用json_encode($array)编码后;在php和JSON中,javascript中的parse(result)似乎不起作用。
在控制台中,我有数组,但无法访问其值。(数组[0]给了我“未定义”)。使用此
echo json_encode($array);
在服务器端
及
在客户端您需要将php数组转换为json,请尝试:
echo json_encode($array)代码>
jQuery应该能够看到返回的json,并自动从中创建javascript对象
$.post('./file.php', function(result)
{
$.each(result, function()
{
console.log(this.Latitude + ":" + this.Longitude);
});
});
正如Ruslan Polutsygan提到的,您可以使用
echo json_encode($array);
在PHP方面
在Javascript端,您只需将数据类型添加到$.post()函数:
$.post(
'./file.php',
function( result ){
console.log(result);
},
'json'
);
结果参数是解析的JSON数据
您还可以在PHP脚本中设置正确的内容类型。然后jQuery应该自动解析从PHP脚本返回的JSON数据:
header('Content-type: application/json');
见
如果您的PHP脚本工作正常并输出任何内容,您不应该在JavaScript中获得未定义的。jQuery是否为您解析?如果我执行arr[0],我会得到“未定义”,即使在解析后,结果警报将正确的arraylog发送到控制台接收的结果并粘贴到此处。如果我在控制台中键入arr,我会得到:Array[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:不确定,但看起来服务器返回数组的数组<服务器端的code>$array
不是您所想的。尝试将一些测试数据传递到客户端,例如echo json_encode(数组('item 0'、'item 1'、'item 2'、'item 3'))
。并在客户端尝试记录arr[0]
。如果它以这种方式工作,那么您正在错误的地方查找错误。
$.post(
'./file.php',
function( result ){
console.log(result);
},
'json'
);
header('Content-type: application/json');