Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过AJAX将数组从php传递到javascript_Php_Javascript_Mysql_Jquery - Fatal编程技术网

通过AJAX将数组从php传递到javascript

通过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

我需要从php脚本生成一个数组。我有数据库中每个用户的纬度和经度。 我使用以下代码(file.php)从数据库中获取值:

我用以下代码调用ajax:

$.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');