[英]AJAX request not returning data
我试图在我的PHP页面的后台运行一个脚本,该脚本将检查是否有新消息添加到数据库中并通知用户。
我使用AJAX使用代码调用文件,并使用setTimeout()每10秒调用一次。
问题是ajax不返回任何数据。 我尝试仅将“ return:1;”放进去 但我仍然收到一个空白的警报框。
PHP:
require('connect.php');
require_once("inc/init.php");
$check_Mail_footer = $con->prepare("SELECT * FROM mail WHERE `to` = ? AND `deleted` = ? AND `read` = ?");
$check_Mail_footer->execute(array($user_id,0,0));
$result = $check_Mail_footer->fetch(PDO::FETCH_OBJ);
return array($result->from, $result->message_id);
Javascript:
function checkNewMail(){
$.ajax({
url: 'newMessageCheck.php',
success: function(info)
{
alert(info);
}, error: function()
{
alert('something went wrong');
}
});
}
setTimeout( checkNewMail() ,10000);
您需要回显要返回到Javascript的数据-您无法返回它
对于您的数组,您可能想先对其进行json_encode,所以请写:-
echo json_encode(array($result->from, $result->message_id));
取代:-
return array($result->from, $result->message_id);
然后更改$ .ajax调用以自动解析JSON
$.ajax({
type: "GET",
url: 'newMessageCheck.php',
dataType:'json',
success: function(info)
{
alert(info[0]);
}, error: function()
{
alert('something went wrong');
}
});
在您的PHP脚本中,使用以下方法:
$json = array(
'from' => $result->from,
'message_id' => $result->message_id
);
$jsonstr = json_encode( $json );
echo $jsonstr;
在javascript函数中,您可以通过以下方式访问:
$.ajax({
type: "GET",
url: 'newMessageCheck.php',
dataType:'json',
success: function(info) {
alert(info.from + "," + info.message_id);
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.