js获取php动态生成的json出错的问题

我打算用php动态查询数据库,生成json格式的数据,然后用js获取这个数据,填入html表格中,现在的问题是,我用写死的json格式数据测试时,一切正常,但是改用php... 我打算用php动态查询数据库,生成json格式的数据,然后用js获取这个数据,填入html 表格中,现在的问题是,我用写死的json格式数据测试时,一切正常,但是改用php动态生成的数据时,就读取不出数据了。
js获取数据方法如下:

function getData(){
$.ajax({
url: "sql-quote.php",
success: function(jsondata){
output(jsondata);//output()为自定义输出数据方法
}
});
}

php动态生成json格式数据方法如下:
<?php
header('Content-type: text/json');

include "../classes/FinanceChart.php";
include "../classes/connmysql.php";
include '../classes/PHPExcel/IOFactory.php';

$callback = isset($_GET['callback']) ? $_GET['callback'] : '';
$query = "SELECT * FROM quotes";
$stmt = $conn->query( $query );
while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){
$val['name'] = $row['name'];
$val['value'] = $row['value'];
$arr[] = $val;
unset ($val);
}
$json = json_encode($arr);

echo $json;

$stmt = null;
$conn = null;
?>
展开
 我来答
百度网友a19d193
推荐于2016-02-18 · TA获得超过3446个赞
知道大有可为答主
回答量:1464
采纳率:100%
帮助的人:1423万
展开全部
用js工具跟踪一下你的ajax请求看看不就知道了吗,比如firefox的firebug,其他浏览器用自带的调试工具就行。看ajax返回的是json类型的数据还是html类型的,以及是不是php端有额外的输出?

比如你的代码中,$arr[] = ...这行,$arr应该在while循环之前声明$arr = array();否则可能会有一个Notice的提示,最后你的输出会变成
Notice: $arr is undefined at line....
[{name:"...", value:"..."},...]
这样js当然无法完成json解析了
更多追问追答
追问
我直接把php输出的内容复制下来到本地,读取这个复制下来的文件也没有问题,php输出的数据应该是没错的吧?其他会不会还有什么问题?会不会是ajax获取时出的问题?
追答
复制出来没什么用的,你还需要查看头信息。已firefox的firebug为例,如果php正确相应的话,展开ajax响应的跟踪结果里面会显示json面板,而如果不对的话则会显示html面板。
以老非老2B
2013-08-19 · TA获得超过319个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:61.5万
展开全部
PHP输出后需要结束程序 exit();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式