将PHP的答案从PHP发送到Ajax

时间:2016-06-29 06:53:49

标签: php jquery ajax

以下是我要做的事情:

我使用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>';
        } 
    }             
?>  

使用此代码,我得到错误&#34;错误&#34;显示在控制台上,警报中的代码是&#34; [object Object]&#34;。但是,我的查询状态是&#34; OK&#34;在我的浏览器中,网络窗口中的回显结果是具有所有正确消息值的预期结果。

我只是不明白为什么我会通过错误而不是成功。

请不要将此标记为重复,因为我已经检查并测试了Ajax / PHP解决方案,但没有得到任何结果。

1 个答案:

答案 0 :(得分:1)

在您的php文件中,您已设置内容类型标题,如下所示

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

但通常以纯文本/ html回显响应。您必须在json中发送响应。

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

或者将内容类型标题删除为json。