2013-12-17 82 views
-1

我正在一個依賴於mysql數據庫的聊天系統中工作。如何進行定期刷新頁面的一部分的AJAX調用?

在發送下面的查詢頁面的第一裝載的開頭:

SELECT * FROM `Shoutbox` ORDER BY `Shoutbox`.`ID` ASC LIMIT 0 , 30 

,然後用while循環模具的所有消息(用戶名和日期)在一個div。

while($array=mysql_fetch_array($dati)) {   
        echo "<div class='tag_li $array[ID]'><span class='when'>$array[DateTime]</span><span class='linea mess'><span id='author'><a onclick='ajaxLoadContent(this)' link='profile.php?name=$array[User]'>$array[User]</a></span>: $array[Message]</span></div>"; 
       } 

現在我想每隔一秒發送一次查詢,然後用新消息更新div的內容(如果有的話)。

如何發送範圍內的SQL查詢?

+6

你的意思是「我怎樣才能做一個定期刷新頁面的一部分的AJAX調用?」 – tadman

+1

你不能用純PHP做到這一點(至少不乾淨)。 PHP會在頁面被請求時執行,你可以使用睡眠方法來延遲PHP執行的結束,但這不是你應該做的。相反,查閱AJAX,使用jQuery等庫很容易。 – kero

+0

如何使用AJAX向數據庫發出請求併發送SQL查詢? – Edoardo

回答

0

我會假設你使用的是javascript,並且想要做一個ajax調用。

開始在客戶端

window.setInterval("ajaxFunction()",milliseconds); 

定時器和AJAX功能

function ajaxFunction(){ 
    var ajaxRequest; // The variable that makes Ajax possible! 

    try{ 
     // Opera 8.0+, Firefox, Safari 
     ajaxRequest = new XMLHttpRequest(); 
    } catch (e){ 
     // Internet Explorer Browsers 
     try{ 
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try{ 
       ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e){ 
       // Something went wrong 
       alert("Your browser broke!"); 
       return false; 
      } 
     } 
    } 
    // Create a function that will receive data sent from the server 
    ajaxRequest.onreadystatechange = function(){ 
     if(ajaxRequest.readyState == 4){ 
      var ajaxDisplay = document.getElementById('ajaxDiv'); 
      ajaxDisplay.innerHTML = ajaxDisplay.innerHTML + ajaxRequest.responseText; 
     } 
    } 

    ajaxRequest.open("GET", "ajax-example.php" , true); 
    ajaxRequest.send(null); 
} 

PHP的一部分

while($array=mysql_fetch_array($dati)) {   
       echo "<div class='tag_li $array[ID]'><span class='when'>$array[DateTime]</span><span class='linea mess'><span id='author'><a onclick='ajaxLoadContent(this)' link='profile.php?name=$array[User]'>$array[User]</a></span>: $array[Message]</span></div>"; 
      } 

和HTML部分

<div id="ajaxDiv"></div> 

這應該給你一個想法是如何完成的。

+0

我已經將AJAX用於其他目的。但在這種情況下,我不明白如何向數據庫發出請求。總之,而不是'ajax-example.php'收益帖子? – Edoardo

+0

您只需將請求發送到服務器上某處的頁面ajax-example.php。該頁面將查詢數據庫,返回結果並將其回顯出來。完成之後,ajaxRequest.responseText保存該頁面的輸出。 –

+0

我明白了。訪問是有效的?快速? – Edoardo

相關問題