2012-01-18 54 views
1

我有一個網站運行php與mySQL數據庫。對於每個訪問我訪問該站點的訪問者,我都會在單獨的表格中記錄用戶會話(從過去的5分鐘)。動態計數器,更改沒有頁面重新加載

如何在頁面上製作一個動態計數器,可以在不重新加載頁面的情況下更改活動會話的數量,例如,如果我在網站上,並且有15個其他人進入櫃檯,則會自動更改而無需重新加載頁面。

回答

1

在非常基本的情況下,您可以通過AJAX輪詢服務器腳本。這PHP腳本將通過類似的在線用戶數量,這些用戶名等一些所需的信息,以便例如JavaScript部分:

// Poll the server each 60 seconds 
window.setInterval(function() { 
    $.getJSON('/online_users.php', function(data) { 
     // Here the data JSON returned by a PHP script 
     // e.g. data.count - count of sessions online 
     // data.users - could be array of user objects, etc 
     $('#counter').text(data.count); // Update some DOM element with new number 
    }); 
}, 60000); 

而服務器端online_users.php

<?php 

// connect to DB, perform all necessary operations 
// output needed info in JSON format 

$users = array(
    array('username' => 'Tomas', 'id' => 234), 
    array('username' => 'Jassy', 'id' => 42) 
); 
$count = count($users); 

header('Content-type: application/json'); 
die(json_encode(array(
    'count' => $count, 
    'users' => $users 
))); 
+0

非常感謝。我用你提供的代碼嘗試過,但沒有輸出。我必須仔細觀察一下。只是一個問題..我不需要'回聲'計數,因爲它能夠顯示?謝謝 – 2012-01-18 21:50:09

+0

我提供的代碼工作得很好。再仔細看看。當然,你需要你的PHP腳本輸出一些迴應。 'echo','die','print'等。如果你只需要一個數字,你可以簡單地改成'echo 25;'或'die(25)'。 – dfsq 2012-01-19 06:46:51

+0

您也可以將間隔時間改爲小於1分鐘,也許這就是您沒有輸出的原因,因爲1分鐘必須先通過。 – dfsq 2012-01-19 06:48:41

相關問題