Javascript 我无法显示json_编码中的数据(每个$)
大家好,谢谢你们抽出时间。 我的问题是,我无法显示php数据库中的Javascript 我无法显示json_编码中的数据(每个$),javascript,php,mysql,ajax,Javascript,Php,Mysql,Ajax,大家好,谢谢你们抽出时间。 我的问题是,我无法显示php数据库中的json\u encode,但在我的chrome浏览器中,数据会显示出来。 $。每个并非仅显示一个 下面是php的代码: comment.php $data = $_REQUEST; $photo_id =38;//$data['photo_id_comment']; $con = mysqli_connect('localhost','root','','gallery'); $sql = "SELECT * FROM
json\u encode
,但在我的chrome浏览器中,数据会显示出来。
$。每个
并非仅显示一个
下面是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>
这篇文章发到:
将数据类型:文本更改为数据类型:JSON
编辑
使用此选项而不是$。每个
for(var i = 0;i < data.length ; i++)
{
/*access data as data[i].orfeas*/
}
编辑2
使用Header帮助jQuery识别响应类型,然后jQuery将解析JSON,您可以使用上面提到的循环将dataType:text
更改为dataType:JSON
编辑
使用此选项而不是$。每个
for(var i = 0;i < data.length ; i++)
{
/*access data as data[i].orfeas*/
}
编辑2
使用Header帮助jQuery识别响应类型,然后jQuery将解析JSON,您可以使用上面提到的循环来访问它
$sql = "SELECT * FROM comments WHERE photo_id = " . $database->escape_string($photo_id) ORDER BY photo_id ASC";
$result = mysqli_query( $con,$sql);
$arr = array();
while ($row = mysqli_fetch_array($result)){
$arr[] = $row;
}
echo json_encode($arr);
和变化
dataType:'json' instead of dataType:'text'
在脚本中。请试试这个
$sql = "SELECT * FROM comments WHERE photo_id = " . $database->escape_string($photo_id) ORDER BY photo_id ASC";
$result = mysqli_query( $con,$sql);
$arr = array();
while ($row = mysqli_fetch_array($result)){
$arr[] = $row;
}
echo json_encode($arr);
和变化
dataType:'json' instead of dataType:'text'
在script中。在script.js文件中更改ajax的成功功能:-
success : function (data) {
$.each($.parseJSON(data), function(key,item){
$('#chat_box').val( $('#chat_box').val() + item.body + '\n');
});
}
在script.js文件中,更改ajax的成功函数:-
success : function (data) {
$.each($.parseJSON(data), function(key,item){
$('#chat_box').val( $('#chat_box').val() + item.body + '\n');
});
}
你能添加一个JSON的小例子吗?`0:{0:“2”,1:“38”,2:“orfeas”,3:“ela re mlk”,4:“2017-07-03 16:08:36”,id:“2”,photo_id:“38”…}0:“2”1:“38”2:“orfeas”3:“ela re mlk”4:“2017-07-03 16:08:36”作者:“orfeas”身体:“ela re mlk”日期:“2017-07-03 16:08:36”id:“2”photo_id:“38”0:“3:“lida”,3:“ela re mlk”,4:“2017-07-03 16:12:57”,id:“3”,photo_id:“38”,…}2:`jQuery.each用于迭代DOM对象。要循环浏览数据,您需要使用来进行
或的循环。@evolutionxbox您可以看到上面我的图片。@erevos13请将此评论移到您的问题中?您可以添加一个JSON的小例子吗?`0:{0:'2',1:'38',2:'orfeas',3:'ela re mlk',4:'2017-07-03 16:08:36',id:'2',photo_id:'38',0:'2“1:“38”2:“orfeas”3:“ela re mlk”4:“2017-07-03 16:08:36”作者:“orfeas”正文:“ela re mlk”日期:“2017-07-03 16:08:36”id:“2”照片id:“38”1:{0:“3”,1:“38”,2:“lida”,3:“ela re mlk”,4:“2017-07-03 16:12:57”,id:“3”,照片id:“38”2:`jQuery.each用于对DOM对象进行迭代。要循环遍历数据,您需要使用for
或while
循环。@evolutionxbox您可以看到上面的图片。@erevos13请将此注释移到您的问题中?这是全部答案吗?还是仅仅是一个建议?@Kunal我这样做了,并且仍然只显示第一个,第二个<代码>$。每个
都不是working@evolutionxbox你的jQuery.each
不会循环遍历数据。是的!你是对的,然后@erevos13可以使用data.index访问值。但这只有在dataType设置为JSON时才可能,因为jQuery会自动解析JSON并可以访问这是完整的答案吗?还是仅仅是一个建议?@Kunal我这样做了,而a仍然只显示第一个,$。每个
都不是working@evolutionxbox必须同时看到我上面的评论。你的jQuery。每个都不会在数据中循环。是的!你是对的,然后@erevos13可以使用data.index访问ss值。但这仅在数据类型设置为JSON时才可能,因为jQuery将自动解析JSON,并且可以从for或while访问。我尝试了,但它们只显示我的一个数据。@Renutry此数据,while($row=$result->fetch\u assoc())@erevos13我试过了,但它们只显示我的一个数据。@Renutry这一个,而($row=$result->fetch_assoc())@erevos13对于p标记不使用$('chat_box').val()。使用这个$('chat_box')。对于p标记,innerHtml()不使用$('chat_box').val()。使用这个$('chat#chat_box')。innerHtml()