问题在于警报消息“TEST”没有出现,尽管函数getData.php
已成功执行并返回一些数据。我在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();
?>
答案 0 :(得分:0)
引用:您在Firebug中查看的数据:
Array{"arr":[["1","EZY14ZM","2013-05-29 16:44 .....
注意开头的Array
.....这是无效的JSON。
您正在调用的实际json_encode()
函数很好。它确实有一个额外的杂散分号,但这是无效的PHP语法,所以我认为当你发布问题而不是在你的实际代码中时它会悄悄进入。
因此Array
函数不会生成杂散文本json_encode()
,因此它必须来自PHP中的其他位置。在代码中的其他位置查找错误输出的echo
或print
。 (可能是通过打印数组变量而不是实际的字符串“Array”)