AJAX请求不返回数据

时间:2014-04-26 18:01:38

标签: javascript php ajax

我正在尝试在PHP页面的后台运行一个脚本,该脚本将检查是否已将新消息添加到数据库并通知用户。

我使用AJAX用代码调用文件,使用setTimeout()每隔10秒调用一次。

问题是ajax没有返回任何数据。我试着把“返回: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);

2 个答案:

答案 0 :(得分:5)

您需要回显想要返回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');
          }
    });

答案 1 :(得分:0)

在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);
  }
});