Javascript 我无法显示json_编码中的数据(每个$)

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

大家好,谢谢你们抽出时间。 我的问题是,我无法显示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 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()