【发布时间】:2015-10-22 16:23:30
【问题描述】:
我已经多次使用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()-ing 输出以打印响应,如下所示...
//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 函数不起作用?我之前使用过这个确切的代码并且输出很好。
【问题讨论】:
-
您是否仅通过在浏览器中打开页面来测试您的页面?你得到预期的输出了吗?如果是:您的 AJAX 代码有问题,如果不是:您到底收到了什么?
-
你已经在使用控制台了;为什么不查看开发工具的 Net 选项卡,看看实际的 http 响应是什么样的?
-
@ccKep 是的,如果我 var_dump
$trows变量,它会将数据转储到控制台,如果我使用json_encode,它会打印空行 -
@Simba 是的,我也看过它,它是空白响应。
-
@VincentWilkie 是的,我一开始以为可能是这样,但我之前确实测试过它并没有相关性,不过感谢您的意见!
标签: javascript php json ajax