不返回JSON数据

时间:2013-05-29 14:45:56

标签: php json getjson

问题在于警报消息“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();
?>

1 个答案:

答案 0 :(得分:0)

引用:您在Firebug中查看的数据:

Array{"arr":[["1","EZY14ZM","2013-05-29 16:44 .....

注意开头的Array .....这是无效的JSON。

您正在调用的实际json_encode()函数很好。它确实有一个额外的杂散分号,但这是无效的PHP语法,所以我认为当你发布问题而不是在你的实际代码中时它会悄悄进入。

因此Array函数不会生成杂散文本json_encode(),因此它必须来自PHP中的其他位置。在代码中的其他位置查找错误输出的echoprint。 (可能是通过打印数组变量而不是实际的字符串“Array”)