【发布时间】:2015-04-12 05:52:00
【问题描述】:
我在这里挂了。用户单击选择列表上的选项,然后 jQuery 将 xhr 发送到服务器进行处理,这里没什么特别的,代码运行良好(firebug 显示正确的 Posted 数据)。
然后一个简单的代码从W_id == $val的数据库中返回行,然后在$result中获取结果,然后将结果作为json响应回显:
public function getCities($val) {
$sth = $this->db->prepare("SELECT id, name FROM cities WHERE w_id = :w_id");
$sth->execute(array(':w_id' => $val));
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
//print_r($result);
header("content-type:application/json");
echo json_encode($result);
}
Firebug 显示 Post 数据但没有响应。但是当我取消注释 print_r 时,它会显示一个数组作为响应:
Array(
[0] => Array(
[id] => 1401
[name] => Aïn Bouchekif
)
[1] => Array(
[id] => 1402
[name] => Aïn Deheb
)
[2] => Array(
[id] => 1403
[name] => Aïn El Hadid
) and so on...
这意味着有结果可以返回,但我不知道如何将它们json化。任何帮助表示赞赏,谢谢。
【问题讨论】:
-
如果您跳过标题,它会打印任何内容吗?
-
在
echo json_encode($result)之后尝试echo json_last_error() -
我认为,错误标题中的问题。尝试全面检查 http 请求/响应标头。
-
你在使用php框架吗?
-
如果没有,检查方法是如何被使用的,也许用return替换echo然后:echo getCities($val)