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;
?> 展开
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;
?> 展开
2个回答
展开全部
用js工具跟踪一下你的ajax请求看看不就知道了吗,比如firefox的firebug,其他浏览器用自带的调试工具就行。看ajax返回的是json类型的数据还是html类型的,以及是不是php端有额外的输出?
比如你的代码中,$arr[] = ...这行,$arr应该在while循环之前声明$arr = array();否则可能会有一个Notice的提示,最后你的输出会变成
Notice: $arr is undefined at line....
[{name:"...", value:"..."},...]
这样js当然无法完成json解析了
比如你的代码中,$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面板。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询