Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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
用javascript处理php发送的JSON数据_Php_Javascript_Sql_Json - Fatal编程技术网

用javascript处理php发送的JSON数据

用javascript处理php发送的JSON数据,php,javascript,sql,json,Php,Javascript,Sql,Json,我在PHP和JavaScript之间通过JSON进行交互时遇到了一个问题 PHP脚本从我的数据库中读取数据。SQL结果由1行组成 名称| lat | lng 基里安| 45.1252335 | 32.2142380 它被编码为JSON: $query = "SELECT name, lat, lng FROM location l, user u WHERE u.email = l.email"; $result = mysqli_query ($dbc, $query) or die ('E

我在PHP和JavaScript之间通过JSON进行交互时遇到了一个问题

PHP脚本从我的数据库中读取数据。SQL结果由1行组成

名称| lat | lng


基里安| 45.1252335 | 32.2142380

它被编码为JSON:

$query = "SELECT name, lat, lng FROM location l, user u WHERE u.email = l.email";
$result = mysqli_query ($dbc, $query) or die ('Error querying database.');
$to_encode = array();
while($row = mysql_fetch_assoc($result)) {
    $to_encode[] = $row;
}
echo json_encode($to_encode);
JavaScript程序从php脚本(get_locations.php)加载JSON文件:

但浏览器中没有警报。如果我在Chrome中检查发送的JSON,它只会显示[]。 我怎样才能找到发送的名称、lat和lng

编辑:get_locations.php的真实输出是[]。
将JSON转换为字符串总是会产生[]。

您正在混合函数:

$query = "SELECT name, lat, lng FROM location l, user u WHERE u.email = l.email";
$result = mysqli_query ($dbc, $query) or die ('Error querying database.');
$to_encode = array();
while($row = mysql_fetch_assoc($result)) {
    $to_encode[] = $row;
}
echo json_encode($to_encode);

您创建了一个
mysqli
查询,因此您应该使用而不是
mysql版本来获得结果。

您确定并检查了查询是否有结果吗?如果是这样,请尝试使用索引而不是[]将元素推送到
$to_enconde
(出于某种原因,json_encode会用它做一些奇怪的事情)。您可以从get_locations.php添加一些真实世界的输出吗?在javascript
console.log(data)
中也可以提供帮助。欢迎使用!别忘了点击答案旁边的复选标记,这些答案也能让你在未来的问题中发挥作用。^^(你也会因为这样做而获得声誉,并且会让那些在未来帮助你的人更愿意这样做。)
$query = "SELECT name, lat, lng FROM location l, user u WHERE u.email = l.email";
$result = mysqli_query ($dbc, $query) or die ('Error querying database.');
$to_encode = array();
while($row = mysql_fetch_assoc($result)) {
    $to_encode[] = $row;
}
echo json_encode($to_encode);