2010-03-16 71 views
0
$messages = $db->query("SELECT * FROM chatmessages ORDER BY datetime DESC, displayorderid DESC LIMIT 0,10"); 
while($message = $db->fetch_array($messages)) { 
    $oldmessages[] = $message['message']; 
} 
$oldmessages = array_reverse($oldmessages); 
?> 
<div id="chat"> 
<?php 
for ($count = 0; $count < 9; $count++) { 
    echo $oldmessages[$count]; 
} 
?> 
<script language="javascript" type="text/javascript"> 
<!-- 
setInterval("document.getElementById('chat').innerHTML='<NEW CONTENT OF #CHAT>'", 1000); 
--> 
</script> 
</div> 

我試圖創建一個PHP腳本,聊天室,但我有很多的麻煩得到它的自動刷新如何自動使用AJAX自動刷新頁面的一部分?

內容應自動更新,你怎麼讓它這樣做嗎?我一直在尋找近一個小時

+0

只是爲了記錄AJAX *是* JavaScript – 2010-03-16 21:58:04

回答

1

我會把你的PHP功能,並把它放在一個返回JSON的Sperate頁面。從那裏你可以使用jQuery和內置的AJAX工具調用該方法。非常簡單。從這裏開始jQuery:http://api.jquery.com/category/ajax/

+0

儘可能多的我喜歡JSON的工作,我發現很多主機和服務器沒有啓用PHP默認情況下( Espec作爲JSON_FORCE_OBJECT常量在5.3之前並沒有被添加,並且並不是每個人都已經升級),並且不喜歡啓用它,所以我認爲XML可能是更好的方法,直到它得到更廣泛的支持。 – Psytronic 2010-03-16 22:02:30

+0

然後使用SOAP over JSON,無論使用哪種方式,您都希望使用某種異步方法來檢索該數據。 – 2010-03-16 22:26:53

0

你需要設置一個服務器端腳本,只顯示聊天div的內容並使用ajax來抓取它。它可以使用jQuery做很容易:

在HTML文檔:

<head> 
... 
    <script src="/path/to/jquery.js" type="text/javascript"></script> 
    <script> 
     var chatUpdateInterval = null; 
     function initChat() { 
      chatUpdateInterval = window.setInterval(updateChat, 5000); /* every 5 seconds */ 
     } 
     function updateChat() { 
      $.ajax({ 
       url: '/url/path/to/your/script.php' 
       ,dataType: 'HTML' 
       ,success: function(data, status, xhr){ 
        $('#chat').append($(data).html()); 
       } 
      }); 
     } 
     $(document).ready(function(){ 
      initChat(); 
     }); 
    </script> 
... 
</head> 
<body> 
    <div id="chat"> 
     please stand by while we're firing up the coal! 
    </div> 
</body> 

請注意,這不會是真的很好,它只是一個樣本,讓你開始。你應該看看jQuery的$.ajax