[英]PHP Multidimensional Associative Array to JS Object Using json_encode()
[英]PHP json_encode multidimensional associative array
我已经多次使用php的json_encode()
函数,但是由于某种原因,我似乎在这里找不到问题...
注意:为了清楚起见,我删除了错误检查。
// PHP
<?php
session_start();
require 'global/query.php';
$sql = "SELECT sfl,station,latitude,longitude,address,city FROM maps";
$stmt = $pdo->prepare($sql);
$stmt->execute();
while($result = $stmt->fetch(PDO::FETCH_ASSOC)){
$trows[] = $result;
}
echo json_encode($trows);
?>
我正在使用AJAX,而只是console.log()
像这样输出输出以打印响应...
// JS
var callback = {
"projects": function(e){
console.log(e.target.response);
}
};
在控制台中,它打印出无数据的空白行。
现在,如果我var_dump
$trows
控制台中的输出将打印数据,所以我知道我的sql语句可以正常工作...
// PHP
var_dump($trows);
//安慰
array(522) {
[0]=>
array(6) {
["sfl"]=>
string(1) "1"
["station"]=>
string(26) "COMPRESSOR STATION"
["latitude"]=>
string(2) "23"
["longitude"]=>
string(4) "-115"
["address"]=>
string(10) "Unnamed Rd"
["city"]=>
string(9) "blah"
}
[1]=>
array(6) {
["sfl"]=>
string(1) "2"
["station"]=>
string(17) "STA TERMINAL"
["latitude"]=>
string(2) "16"
["longitude"]=>
string(4) "-101"
["address"]=>
string(11) "15 Ranch Dr"
["city"]=>
string(8) "Blah Blah"
},
问题:为什么我的php的json_encode函数不起作用? 我之前使用过此确切的代码,并且输出很好。
尝试添加:
header("Content-type: application/json; charset=utf-8");
在回显JSON编码结果之前。
编辑:
如果编码不起作用,请尝试以下操作:
while ($result = $stmt->fetch(PDO::FETCH_ASSOC))
{
$trows[] = array_map('utf8_encode', $result);
}
我会看到PHP告诉您的内容:
更改
echo json_encode($trows);
至
$json = json_encode($trows);
$error = json_last_error();
if ($error !== JSON_ERROR_NONE) {
echo json_last_error_msg();
} else {
echo $json;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.