2009-08-30 74 views
0

我正在處理AJAX/jQuery通知腳本。
目前它在AJAX響應中每10秒重新調整一次整個fhtml格式的頁面。
它返回的頁面是我想要一個PHP頁面只顯示出應顯示 項目(只顯示有新的東西展現出來,像一個新的郵件消息或發表評論等項目。)如果AJAX JSON響應顯示正確的數據,如何顯示隱藏的DIV?

改變這個使用JSON而不是我的主頁(父母)我會有每個通知項目的DIV,默認情況下,他們將被隱藏使用CSS 和JSON響應會告訴我應該取消隱藏哪些項目。

所以這是我的基本計劃,下面是一些視覺模型代碼。

JSON響應,只有10個可能的項目,它只會返回標記爲1的項目(意思是顯示該項目)
1可能不需要,因爲我只顯示項目是已經確認用PHP顯示?

{"mail":"1", "friend_request":"1" , "comment":"1" , "photo_comment":"1"}, 

在主父頁面會有DIV與CSS,使它們隱藏這樣。 (僅4個項目的演示)

<style type="text/css"> 
#mail_notification{ 
    display: none; 
} 
#friend_request_notification{ 
    display: none; 
} 
#comment_notification{ 
    display: none; 
} 
#photo_comment_notification{ 
    display: none; 
} 
</style> 

<div id="mail_notification"><a href="someurl.com/mail.php?id2424">New Mail</a></div> 
<div id="friend_request_notification"><a href="someurl.com/mail.php?id2424">New Friend Request</a></div> 
<div id="comment_notification"><a href="someurl.com/mail.php?id2424">New Profile COmments</a></div> 
<div id="photo_comment_notification"><a href="someurl.com/mail.php?id2424">New Photo Comments</a></div> 

所以能有人告訴我我會怎麼做呢?


這裏是我出的AJAX通知,使用舊方法CUREENT代碼,它不使用JSON但

<!-- Auto update/look for NEW notifications --> 
<script type='text/javascript'> 
$(document).ready(function(){ 
    var updatenotification = function(){ 
      $('#notificationcontainer') 
       .load('/modules/member/home/notifications.inc.php') 
       .fadeIn("slow"); 
    }; 
    var auto_refresh = setInterval(function(){updatenotification();}, 5000); 
    updatenotification(); 
}); 
</script> 
<!-- ENDS HERE --> 

回答

3

更改您的更新通知消息,使用獲得的,而不是負擔,並有回調迭代通過JSON鍵,顯示那些對應於鍵的值爲1的DIV。

var updatenotification = function(){ 
      $('#notificationcontainer') 
       .get('/modules/member/home/notifications.inc.php',null,function(data) { 
        for (key in data) { 
         if (data[key]) { 
          $('#' + key + '_notification').fadeIn(); 
         } 
        } 
       }); 
    }; 
+0

哇,這看起來太簡單了!既然它還沒有完全編碼,我應該問,有什麼我應該改變的表現?這個腳本會反覆運行很多次,感謝您的幫助 – JasonDavis 2009-08-30 02:22:38