Php 不返回JSON数据
问题在于,尽管函数Php 不返回JSON数据,php,json,getjson,Php,Json,Getjson,问题在于,尽管函数getData.php已成功执行并返回一些数据,但警报消息“TEST”并未出现。我在Firelog中查看了它,在那里我可以看到以下输出: Array{"arr":[["1","EZY14ZM","2013-05-29 16:44:38","2013-05-29 16:45:28"],["1","VLG1307","2013-05-29 16:47:05","2013-05-29 16:47:55"],["1","WZZ212","2013-05-29 16:49:12","20
getData.php
已成功执行并返回一些数据,但警报消息“TEST”并未出现。我在Firelog中查看了它,在那里我可以看到以下输出:
Array{"arr":[["1","EZY14ZM","2013-05-29 16:44:38","2013-05-29 16:45:28"],["1","VLG1307","2013-05-29 16:47:05","2013-05-29 16:47:55"],["1","WZZ212","2013-05-29 16:49:12","2013-05-29 16:50:02"]],"dep":[["1","VLG8306","2013-05-29 16:59:17","2013-05-29 17:00:00"],["1","VLG3786","2013-05-29 17:07:29","2013-05-29 17:08:12"],["1","IBE1851","2013-05-29 17:08:38","2013-05-29 17:09:21"],["1","DLH58Y","2013-05-29 17:09:47","2013-05-29 17:10:30"]]}
如何解决这个问题
function show_data() {
$.getJSON(
'h_index.php?module=mod_1&pag_mod=getData.php',
function(data) {
alert("TEST");
}
);
}
getData.php
<?php
//...
echo json_encode(array('arr' => $rows_arr, 'dep' => $rows_dep););
die();
?>
引用:在Firebug中查看的数据:
Array{"arr":[["1","EZY14ZM","2013-05-29 16:44 .....
请注意该开头的数组
。。。。。这不是有效的JSON
您正在调用的实际json\u encode()
函数没有问题。它确实有一个额外的分号,但这是无效的PHP语法,所以我假设它是在您发布问题时出现的,而不是在实际代码中
因此,散乱的文本
数组
不是由json_encode()
函数生成的,因此它一定来自PHP中的其他地方。查找代码中错误输出的回显
或打印
。(可能是打印一个数组变量,而不是实际的字符串“array”)从响应中出现的数组中,我猜您在回显getData中更上层的数组。php@RyanPilbeam:为了检查这一点,我用以下方式更改了json_encode:json_encode(数组('TEST'=>$rows_arr…),结果得到了数组{“TEST”:[[“1”…所以,这个回音返回JSON数据。为了检查这一点,我用以下方式更改了JSON_编码:JSON_编码(数组('TEST'=>$rows_arr…),结果我得到了数组{“TEST”:[[“1”…所以,这个回音返回JSON数据。@klausklausos-你的测试实际上没有证明任何东西。正如我所说的,“数组”来自代码中的其他地方;它不是来自json\u encode()
。您可以通过完整注释json\u encode()
行来证明这一点……您会发现您仍然拥有“数组”输出中的文本。是的,这是真的。那么,我需要查找并注释一些回音吗?是的。正如我在回答中所说的,您需要在代码中的其他地方找到回音或打印正在执行此操作的内容并将其删除。我不知道它在代码中的其他位置,因为您没有向我们显示任何回音,但它就在那里。您必须找到id。