以下是我要做的事情:
我使用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解决方案,但没有得到任何结果。
答案 0 :(得分:1)
在您的php文件中,您已设置内容类型标题,如下所示
header('Content-type: application/json');
但通常以纯文本/ html回显响应。您必须在json中发送响应。
echo json_encode($data['CONTENT']);
或者将内容类型标题删除为json。