我试图在我的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');
          }
    });

关于javascript - AJAX请求未返回数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23314657/

10-11 01:57
查看更多