我想从数据库下载评论并在我的页面上显示。当前代码返回语法错误,因为php文件没有返回正确的json文件。
我的PHP代码(没有连接问题所以只取部分)。
if ($result->num_rows > 0){
while($row = $result->fetch_assoc()) {
echo json_encode(array(
"id" => $row["id_com"],
"nick" => $row["com_nick"],
"email" => $row["com_email"],
"text" => $row["com_text"],
"data" => $row["com_data"],
"ocena" => $row["ocena"]
));
}
返回值。
{"id":"1","nick":"my_nick","email":"g@go.pl","text":"content!","data":"2016-08-03","rate":"5"}{"id":"4","nick":"ra","email":"hat@gon.ha","text":"Hat","data":"2016-08-03","ocena":"1"} ect...
Ajax请求(我认为问题在于此处)
$.ajax
({
url: "/commdown.php",
dataType: 'json',
success: function(data)
{
alert(
"id: " + data.id +
"\nnick: " + data.nick +
"\nemail: " + data.email +
"\ntext: " + data.text +
"\ndata: " + data.data +
"\nocena: " + data.ocena
);
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
我认为问题在于我使用单个ajax请求下载多个对象,而不是单独调用每个注释的请求。
答案 0 :(得分:0)
使用数组将所有数据附加到它然后回显编码数据,使用ajax中的循环在页面/警告框中显示它
if ($result->num_rows > 0){
$data = [];
while($row = $result->fetch_assoc()) {
$data[] = array(
"id" => $row["id_com"],
"nick" => $row["com_nick"],
"email" => $row["com_email"],
"text" => $row["com_text"],
"data" => $row["com_data"],
"ocena" => $row["ocena"]
);
}
header('Content-Type: application/json');
echo json_encode(data);
JS:
$.ajax
({
url: "/commdown.php",
dataType: 'json',
success: function(retdata)
{
$.each(retdata,function(i,data){
alert(
"id: " + data.id +
"\nnick: " + data.nick +
"\nemail: " + data.email +
"\ntext: " + data.text +
"\ndata: " + data.data +
"\nocena: " + data.ocena
);
});
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}
});
答案 1 :(得分:0)
得到一个合适的json尝试这个..
$data = array();
while ( $row = $result->fetch_assoc() ){
$data[] = json_encode($row);
}
echo json_encode($data);
你可以使用。
$data = $result->fetch_all( MYSQLI_ASSOC );
echo json_encode($data);