0

问题是没有出现警告消息“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");
    }
 );             
}

获取数据.php

<?php
   //...
   echo json_encode(array('arr' => $rows_arr, 'dep' => $rows_dep););
   die();
?>
4

1 回答 1

0

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

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

请注意Array开头的......这不是有效的 JSON。

json_encode()您调用的实际功能很好。它确实有一个额外的分号,但这是无效的 PHP 语法,所以我认为它是在您发布问题时悄悄出现的,而不是在您的实际代码中。

所以杂散文本Array不是由json_encode()函数产生的,所以它一定来自 PHP 中的其他地方。在你的代码中寻找错误输出的一个echo或一个。print(可能通过打印一个数组变量而不是实际的字符串“Array”)

于 2013-05-29T14:50:15.177 回答