2017-07-05 11 views
0

みなさんこんにちは。ありがとうございました。 私の問題は、私のPHPデータベースからjson_encodeを表示することはできませんが、私のクロムにはデータが表示されます。 $.eachがないdispalyすべて一つだけ今

enter image description here

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> 
+1

あなたはJSONの小さな例を追加することはできますか? – evolutionxbox

+0

' 0: {0: "2"、1: "38"、2 "orfeas"、3: "MLK再ELA"、4: "2017年7月3日午後四時08分36秒"、ID : "2"、photo_id: "38"、...} : "2" : "38" : "orfeas" : "ELA再MLK" : "2017年7月3日午前16時08分36秒" 著者 : "orfeas" 体 : 日付 "MLK再ELA": 1 "38": "2017年7月3日夜04時08分36秒" ID: "2" photo_id {0: "3" 、1: "38"、2 "リダ"、3: "MLK再ELA"、4: "2017年7月3日午後04時12分57秒"、ID "3"、photo_id: "38"、...} : ' – erevos13

+0

jQuery.eachは、DOMオブジェクトを反復処理するためのものです。データをループしyouwillは '' 'for''' or'' 'while'''ループを使用する必要があります。あなたは上記の私のイメージを見ることができ@evolutionxbox –

答えて

1

変化dataType:text

dataType:JSONにEDIT

使用この代わり$.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

使用ヘッダー応答タイプを識別するために、次にjQueryのJSONをパースし、あなたが言及した

+0

これは全体の答えは?それともただの提案?私は、まだ最初が表示されていることを、 '$ .each'が – evolutionxbox

+0

@Kunalは、上記の私のコメントを参照してください – erevos13

+0

@evolutionxboxに動作していない –

1

上記のループを使用してそれにアクセスすることができますjQueryのを助けるために

、これを試してみてください

と変更

$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); 
、s内の

dataType:'json' instead of dataType:'text' 

cript。あなたのscript.jsで

+0

私が試してみて、それが、彼らは唯一の私のデータの表示します。しばらく($行= $ result-> FETCH_ASSOC())@Renuは( '#のchat_box')$を使用いけない。ヴァル()pタグのためerevos13 – erevos13

+0

。この$( '#のchat_box')を使用。innerHTMLプロパティ() – Renu

0

はAJAXの成功関数に変更を加えたファイル: -

success : function (data) { 
    $.each($.parseJSON(data), function(key,item){ 
      $('#chat_box').val($('#chat_box').val() + item.body + '\n'); 
     }); 
    } 
+0

@、これを試してみてください –