2016-09-23 1 views
0

jsonによるリサーチからデータを回復する方法は?私は、新しい要素を作成するために、例えば、item.f </div> < span> item.mのような新しい要素を作成するために、item.f、item.mを回復するために、PHPページの結果表示として別々の項目を回復したいと思います。 ..ajax/jsonでphp mysqlクエリをリカバリしますか?

(エラーがで発表) エラーがnullのアイテム」のプロパティを読み取ることができません

PHPページ(クエリん)

if ($_GET['action'] == "chatheartbeat") { chatHeartbeat(); } 

function chatHeartbeat() { 
    $sql = "select * from mensagens "; 
    $query = mysql_query($sql); 
    $items = ''; 
    $chatBoxes = array(); 
    while ($chat = mysql_fetch_array($query)) { 
     $items. = << < EOD 
{ 
"s": "0", 
"f": "{$chat['de']}", 
"m": "{$chat['mensagem']}", 
"i": "{$chat['img']}" 
}, 
EOD; 
    } 
} 

インデックス(ペアクエリが存在コールありがとう結果 - ここでエラー - ここでヘルプが必要な)

$.ajax({ 
    url: "asd.php?action=chatheartbeat", 
    cache: false, 
    dataType: "json", 
    success: function(data) { 
     $.each(data.items, function(i, item) { 
      alert(item.f) 
     }); 
    } 
}); 
+0

は、手動でJSONを生成する配列/オブジェクトを生成し、 'json_encode()'有効なJSONを生成するために使用しないでください。 – jeroen

+0

分かりやすいコードの字下げが良い考えです。コードを読むのに役立ちます。もっと重要なのは**あなたのコードをデバッグするのに役立ちます** [コーディング標準を見てください](http://www.php-fig.org/psr/psr-2/ )あなた自身の利益のために。あなたはこのコード を数週間/数ヶ月で修正するように頼まれるかもしれません。そして、あなたは私に最後に感謝します。 – RiggsFolly

答えて

2

@jeroenを手動でJSON文字列をPHPからJSONStringを作成するためにjson_encode()を使用して生成いけない言うように配列またはオブジェクトです。

if ($_GET['action'] == "chatheartbeat") { 
    $sql = "select * from mensagens "; 
    $query = mysql_query($sql); 

    $chatBoxes = array(); 

    while ($chat = mysql_fetch_array($query)) { 
     $t - new stdClass(); 
     $t->s = "0"; 
     $t->f = $chat['de']; 
     $t->m = $chat['mensagem']; 
     $t->i = $chat['img']; 

     $chatBoxes[] = $t; 
    } 

    $items = json_encode($chatBoxes); 

    // now just echo $items to return it to the javascript in the browser 
    // here or later in the code if there is more to your code than you showed us 
    echo $items;    
} 

参考文献:

json_encode()

json_decode()

+0

そしてそれを出力する必要があります:-)私はOPが無効なjson(何もない)とにかく 'success'関数に入ったのを理解していないので、おそらく何か他のことも起こっています... – jeroen

+0

うん、私は彼らがそれを作った後、彼らがそれをどうしようとしているのかを確かめていなかった。私は彼らがカバーしていたalredayを望んでいた! – RiggsFolly

+0

なぜコードが関数に含まれていたのか分かりませんが、少なくともこの回答の目的には関係がないように見えるので、コードを削除しました – RiggsFolly

0

ヘルプありがとうございまし

PHPページを次のように、私は問題を解決するために管理(ありませんクエリ)

$result = mysql_query("SELECT * FROM mensagens");   
while($array = mysql_fetch_assoc($result)){ 
$table[]= array("de"=>$array['de'],"mensagem"=>$array['mensagem']); }       
echo json_encode($table); 

インデックス

$.ajax({          
    url: 'asd.php',              
    dataType: 'json',    
    success: function(data)   
    { 
    for($i=0; $i < data.length; $i++){ 
$("#chatbox_"+chatboxtitle+" .chatboxcontent").append(
'<div class="message"><span class="from">'+data[$i].de+':&nbsp;&nbsp; 
</span><span class=content">'+data[$i].mensagem+'</span></div>'); 
}} 
}); 
関連する問題