2014-04-26 118 views
0

我想在我的PHP頁面的後臺運行腳本,它將檢查新消息是否已添加到數據庫並通知用戶。AJAX請求不返回數據

我使用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); 

回答

4

你需要呼應了要返回到JavaScript中的數據 - 你不能返回其

爲了您的陣列,你可能想先json_encode這麼寫: -

echo json_encode(array($result->from, $result->message_id)); 

更換: -

return array($result->from, $result->message_id); 

,然後改變你的$就調用自動解析JSON

$.ajax({ 
      type: "GET", 
      url: 'newMessageCheck.php', 
      dataType:'json', 
      success: function(info) 
      { 
       alert(info[0]); 

      }, error: function() 
      { 
       alert('something went wrong'); 
      } 
    }); 
+0

我應該在「成功」一節中包含該代碼嗎? –

+0

沒有它取代了PHP中的回報,只是編輯了上面的代碼來澄清 –

+0

完美 - 也使用數據,它只是信息[1],信息[2],信息[3]? –

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