我正在尝试从PHP循环JSON输出并为每个索引分配一个列表项。
我有两个不同的问题。
PHP
$data= json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
echo json_encode($data);
JSON
"[
{\"id\":\"1\",\"user_id\":\"1\",\"message\":\"MSG 1\"},
{\"id\":\"2\",\"user_id\":\"1\",\"message\":\"MSG 2\"},
{\"id\":\"3\",\"user_id\":\"1\",\"message\":\"MSG 3 \"},
]"
的jQuery
$.ajax({ url: 'chat.php',
dataType: 'json',
type: 'post',
error: function(statusCode, errorThrown) {
updateError(statusCode, errorThrown);
},
success: function(data){
$.each(data, function() {
$.each(this, function(k, v) {
$('<li data-msgid="'+data.id+'">' + data.user_id + '::' + data.message + '</li>').appendTo('#chat_area');
});
});
}
});
我使用ajax调用而不是json,因为我最终会在同一个函数中传递数据。 非常感谢任何帮助。
答案 0 :(得分:2)
您正在编码两次:
$data= json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
echo json_encode($data);
删除第一个并仅编码最终数据:
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
...
echo json_encode($data);