大家好,感谢您的时间。
我的问题是我无法从我的php数据库中显示json_encode
但在我的chrome中显示数据。
$.each
并非显示只有一个
enter image description here
现在是php的代码:
comment.php
$data = $_REQUEST;
$photo_id =38;//$data['photo_id_comment'];
$con = mysqli_connect('localhost','root','','gallery');
$sql = "SELECT * FROM comments";
$sql .= " WHERE photo_id = " . $database->escape_string($photo_id);
$sql .= " ORDER BY photo_id ASC";
$result = mysqli_query( $con,$sql);
$arr = array();
$row_count = mysqli_num_rows($result);
while ($row = mysqli_fetch_array($result)) {
array_push($arr , $row);
}
mysqli_close($con);
echo json_encode($arr);
检索数据的ajax是:script.js
function refreshComment() {
requestData = $("#photo_id_comment").serialize();
$.ajax({
url: "http://localhost/udemy/app_php/includes/comment.php",
type: "get",
data: requestData,
dataType: "text",
success : function (data) {
jQuery.each(data, function(index, item) {
//now you can access properties using dot notation
$('#chat_box').val( $('#chat_box').val() + item.body + '\n');
/* $('#author_comment').html(item.author);
$('#chat_box').html(item.body);*/
});
},
error: function (http, status, error) {
alert('Some error occurred :'+error);
}
});
return false;
}
setInterval( refreshComment , 5000 );
未显示数据的html为:photo.php
。
<div class="media">
<a class="pull-left" href="#">
<img class="media-object" src="http://placehold.it/64x64" alt="">
</a>
<div class="media-body">
<h4 id="author_comment" class="media-heading"></h4>
<p id="chat_box"></p>
<p class="text-info">This is post at: </p>
</div>
</div>
答案 0 :(得分:1)
将dataType:text
更改为dataType:JSON
修改强>
使用此代替$.each
for(var i = 0;i < data.length ; i++)
{
/*access data as data[i].orfeas*/
}
<强> PHP 强>
$array = array();
$i = 0;`
foreach($res as $r){
$array[$i] = $r;
$i++;
}
header('Content-Type:Application/json');
echo json_encode($array);
EDIT2
USE Header帮助jQuery识别响应类型,然后jQuery将解析JSON,你可以使用上面提到的循环访问它
答案 1 :(得分:1)
请尝试这个,
dataType:'json' instead of dataType:'text'
并改变,
require.js
在剧本中。
答案 2 :(得分:0)
更改ajax的成功函数: -
success : function (data) {
$.each($.parseJSON(data), function(key,item){
$('#chat_box').val( $('#chat_box').val() + item.body + '\n');
});
}