2016-06-29 17 views
1

へのHTML答えを送る私がやろうとしているものです:私は私のデータベースからメッセージを選択するために、Ajax呼び出しを使用しはここにPHPからのAjax

、私は私のPHPのコンテンツをエコーと私はエコー取得しようAjaxの成功のためのhtmlしかし、それは動作しません。ここにコードがあります。

のjQuery:

function SelectMessages() 
{ 
    console.log("Selecting messages"); 
    console.log("Talk = " + talk); 

    $.ajax({ 
     url: "select_messages.php", 
     type: "GET", 
     data: "talk=" + talk, 
     success: function (html) { 
      alert(html); 
      console.log("In success"); 
      $("#message_box").prepend(html) 
     }, 
     error: function (html) { 
      alert(html); 
      console.log("In error"); 
     } 
    });//ajax() 

}//SelectMessages() 

PHP:

<?php 
    //SELECTING MESSAGES 
    require 'dbconnect.php'; 

    header('Cache-Control: no-cache, must-revalidate'); 
    header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 
    header('Content-type: application/json');  

    if ($_GET['talk'] != "") { 
     $request = $bdd->prepare('SELECT AUTHOR,CONTENT FROM MESSAGE WHERE TALK = :talk'); 
     $request->execute(array("talk"=>$_GET['talk']));   

     while ($data = $request->fetch(PDO::FETCH_ASSOC)) { 
      echo' <p> '.$data['CONTENT'].'</p>'; 
     } 
    }    
?> 

は私がコンソールに表示し、アラートのコードがある "エラーで" を取得、このコードを使用する「[オブジェクトオブジェクト]を選択します。しかし、私のクエリのステータスはブラウザでは「OK」で、ネットワークウィンドウにエコーされた結果は、すべての正しい値のメッセージで期待される結果です。

なぜ私は成功の代わりにエラーを通過するのか分かりません。

私は既にAjax/PHPソリューションをチェックしてテストした結果、何の結果も得られなかったので、これを複製としてマークしないでください。あなたのphpファイルで

+4

'header( 'Content-type:application/json')を削除します。 '!! –

+0

どうしたら話すことができますか?あなたはどのようにそれに価値を割り当てましたか?そして、PHPファイルからヘッダを取り除く。 – theinarasu

+0

'オブジェクトオブジェクト'として取得しているので、jsonの問題をもっと詳しく考えてください。 – Ctc

答えて

1

あなたは

header('Content-type: application/json');  

を次のようにコンテンツタイプヘッダを設定しますが、通常はプレーンテキスト/ htmlとして応答をエコーし​​ています。あなたはjsonで応答を送る必要があります。

echo json_encode($data['CONTENT']); 

または、jsonというコンテンツタイプのヘッダーを削除します。

+0

申し訳ありませんが、彼はwhileループ内で 'echo json_encode($ data ['CONTENT']);'を使うことはできません!彼は最初にすべてのデータを収集し、JSONエンコードをエコーし​​なければなりません!しかし、私はここにjson符号化されたデータの必要性は見当たりません!! –

+0

@IsmailRBOUHしかし、私はループが2回以上発生するとは思わないが、別の解決策も与えている。 –

+0

'header( 'Content-type:application/json');を削除しました。とにかくありがとう ! –

関連する問題