2010-11-12 31 views
1

我幾乎完成了幾個月前開始編寫的網站。我已經完成了基礎,但是,我想添加一些新功能,使其更快,並添加一些金光閃閃。用ajax動態檢查郵件收件箱?

目前,我有系統,從而PHP查詢數據庫,看看是否有任何未讀的消息,每次頁面發出新的頁面請求。如果用戶有未讀消息,php會回覆引號內未讀消息的數量。

我該如何使用ajax或jquery來回顯未讀消息的數量而不必發出新的頁面請求?

感謝

+1

學會接受答案和upvote。人們在這裏捐助他們的時間來幫助他人,他們希望感到欣賞,這就是我們如何在堆棧溢出/交換中展示它。 – webbiedave 2010-11-12 16:44:27

回答

0

創建一個腳本,只有呼應未讀郵件的數量(不含任何其他HTML),然後使用jQuery來得到它:

$('#span_with_numer_of_messages').load('your_unread_messages_script.php'); 
3

您可以設置定時要求,像這樣:

var element = $('...'); 

// new get request every minute - 60*1000ms 
var interval = setInterval(function(){ 
    element.load('/phpfile.php'); 
}, 60000); 
2

在你/phpfile.php 輸出結果和編碼陣列JSON格式。例如,您可能有查詢

<?php 
    include 'config.php'; 
    include 'opendb.php';   
    $query = "SELECT message FROM messages"; 
    $result = mysql_query($query); 
    $jarray = array(); 
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
     $jarray[] = array("message"=>$row['message']);   
    } 
    echo json_encode($jarray);   
    include 'closedb.php'; 
?> 

獲取帶有ajax的json數組。

var messagesContainer = $('messages'); 
    $.getJSON('phpfile.php',function(data) 
    { 
     $.each(data, function(i,stuff){ 
      $("<div class='msg'>"+stuff.message+"</div>").prependTo(messagesContainer); 
     } 

    })