2010-08-05 75 views
1

我有一個頁面顯示插入到mysql數據庫中的數據;我希望(如果可能的話)在將記錄添加到數據庫時自動更新此視圖頁面(數據不會從同一頁面插入或可能從其他用戶插入)。當數據庫更新時jquery更新頁面

在此先感謝 ciao h。

+0

是的,這是可能的,你的問題是什麼? – 2010-08-05 13:56:15

+0

我想給出一個示例或關於如何操作的建議,再次感謝 – haltman 2010-08-05 14:00:02

+0

@Viper_Sb,我也希望看到您的方法。沒有頁面刷新或以固定的時間間隔發出更新的AJAX請求,我不知道你會如何做到這一點。 – blcArmadillo 2010-08-05 14:22:17

回答

3

第一種方式(最簡單但煩人):
向頁面添加元刷新,整個頁面刷新每x時間。

第二種方式(AJAX):
我假設這是你想要的。

  • 加載默認的HTML頁面等...讓調用它的index.php
  • 在上述網頁創建樣式顯示一個<的div元素>:沒有這樣的

    <div id="mydata" style="display: none;"></div> 
    
  • 創建PHP頁面,用於檢索和格式化數據庫數據並以x格式(即表格或p標籤)打印出來。沒有頁眉或頁具體的東西不僅僅是數據和簡單的標記

  • 在index.php文件把這樣的事情

    <script type="text/javascript"> 
        function update() { 
         $.ajax({ 
          url: 'http://www.example.com/getData.php?q=latest', 
          success: function(response) { 
           $('#mydata'.html(response); 
          } 
         }); 
        } 
        // .ready function 
        $(function() { 
         // do setup stuff here, I think there is a refresh timer or something 
         // that you'd use to trigger it every x amount of time 
         // i.e something like this 
         update(); 
        }); 
    </script> 
    

編輯:AJAX HTTP streaming力數據到用戶

0

我知道最好的方法來做到這一點,但快速簡單的解決方案將是在頁面加載時獲取表格中的總行數。然後每個x秒使用一個AJAX腳本來重新檢查該表的行數。如果它已經改變,你可以有額外的邏輯,然後獲取新的行。

+1

我認爲存儲最後一個請求的時間戳,然後檢查是否有更新的消息比檢查消息的總量更有意義(如果有人刪除消息f.e.會怎樣?) – 2010-08-05 14:39:34

+0

確實,這是實現上述目的的另一種方式。如果您要在記錄中存儲時間戳,只需在[上次更新時間]之後查詢數據庫中的任何行。 – 2010-08-05 15:15:55