杰森不行

时间:2012-12-11 22:43:44

标签: php javascript ajax json

我试图从数据库中提取随机字符串,然后通过json传输它。

但是,我显然被困在这里。

<?php


print_r ($return['user_id']);
json_encode($return);


?>

和ajax / js

$(document).ready(function() {
     $.getJSON('initiate.php', function(data) {
        $("#chat-area").html(data);
     });   
});

3 个答案:

答案 0 :(得分:4)

无法使用:

  1. print_r将垃圾(即非JSON)转储到客户端,从而转储JSON解析器
  2. 您实际上并没有echo JSON数据。
  3. 那么,你想要的是:

    <?php
    // obviously $return needs to contain something. otherwise
    // you'll most likely get a notice which is "garbage" too
    echo json_encode($return);
    ?>
    

    修复服务器端代码后,还需要修复JavaScript。 data是一个对象,因此将它设置为某个元素的HTML内容没有多大意义。您可能想要该对象的某些属性:

    $.getJSON('initiate.php', function(data) {
        $("#chat-area").html(data.whatever);
    });
    

答案 1 :(得分:2)

这是错误的:

print_r ($return['user_id']);    // invalidates the json output
json_encode($return);            // does not do much...
// should be:
echo json_encode($return);

答案 2 :(得分:0)

请务必设置内容类型并仅回显json。

<?php
    //fill $whatever_you_want
    header('content-type: application/json');
    echo json_encode($whatever_you_want);
?>