从PHP发送html答案到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>';
        } 
    }             
?>  

使用此代码,我得到"In error"显示在控制台上,警报中的代码是"[object object]"。但是,我的查询在浏览器中的状态是"OK",并且在网络窗口中返回的结果是预期的具有所有正确的消息值的结果。

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

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

在您的php文件中,您已经设置了如下内容类型头

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

,但通常响应为纯文本/html。要么你必须以json格式发送响应。

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

最新更新