如何自动使用AJAX自动刷新页面的一部分?
$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自动刷新页面的一部分?
内容应自动更新,你怎么让它这样做吗?我一直在寻找近一个小时
我会把你的PHP功能,并把它放在一个返回JSON的Sperate页面。从那里你可以使用jQuery和内置的AJAX工具调用该方法。非常简单。从这里开始jQuery:http://api.jquery.com/category/ajax/
尽可能多的我喜欢JSON的工作,我发现很多主机和服务器没有启用PHP默认情况下( Espec作为JSON_FORCE_OBJECT常量在5.3之前并没有被添加,并且并不是每个人都已经升级),并且不喜欢启用它,所以我认为XML可能是更好的方法,直到它得到更广泛的支持。 – Psytronic 2010-03-16 22:02:30
然后使用SOAP over JSON,无论使用哪种方式,您都希望使用某种异步方法来检索该数据。 – 2010-03-16 22:26:53
你需要设置一个服务器端脚本,只显示聊天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
只是为了记录AJAX *是* JavaScript – 2010-03-16 21:58:04