AJAX正常运行但不显示提取的数据

时间:2014-04-03 12:05:33

标签: javascript jquery ajax

我的PHP查询运行正常(基于对firebug的响应),但它给我的结果是我的直接页面上的[object Object]。所以我猜我的问题出在我的javascript上,因为在响应选项卡下的firebug上它检索我数据库中的所有数据

这是我的javascript

    function AjaxRetrieve()
            {
              var rid = document.getElementById('trg').value,
            data = {chat: uid, rid: rid, name: user};
 $.ajax({
      url: "includes/getChat.php",
      type: "GET",
      data: data,
  dataType: 'json',
   success: function(result){
     var res = $([]);

        $.each(result[0], function(key, value) {
            res = res.add($('<div />', {text : value}));
        });

        $("#clog").html(res);
   }
});

        }

请求的php脚本是

        $sql7 = "SELECT   message_content, username , message_time, recipient FROM ".$tbpre."chat_conversation WHERE msgid=:chat";

    $stmt7=$con3->prepare($sql7);
    $stmt7->bindValue( 'chat', $msgd, PDO::PARAM_STR);
    $stmt7->execute();



  $message_query = $stmt7;


$json = array();

if($message_query->rowCount() > 0) {
    while($message_array = $stmt7->fetchAll(PDO::FETCH_ASSOC)) {
        $json[] = $message_array;
    }
    echo json_encode($json);
}

我对JQUERY / AJAX / Javascript还不是很熟悉,所以我真的不确定我所做的是否正确我只是将我的一些代码基于jquery的文档和一些  我们的成员在这里提出的建议

2 个答案:

答案 0 :(得分:1)

如下所示更改您的成功回调,您有一系列对象。

   success: function(result){
        var container = $("#clog");

        $.each(result, function(i, message) {
            $.each(message, function(key, value) {
                container.append($('<div />').html(key + ':' + value));
            });
        });
   }

修改

您必须在循环中将fetchAll更改为fetch

while($message_array = $stmt7->fetch(PDO::FETCH_ASSOC)) {
    $json[] = $message_array;
}
echo json_encode($json);

或者只使用fetchAll而不使用while循环:

$json = $stmt7->fetch(PDO::FETCH_ASSOC);
echo json_encode($json);

答案 1 :(得分:1)

构建json数据的方式是错误的,请尝试这种方式

$json =array();
$i=0;
if($message_query->rowCount() > 0) {
  while($message_array = $stmt7->fetchAll(PDO::FETCH_ASSOC)) {
     $json[$i]= $message_array;
     $i++;
  }

echo json_encode($json);
}

快乐编码:)