更新div而不重新加载页面

时间:2012-12-20 14:32:06

标签: php html

我想在没有页面重新加载的情况下每4秒更新一次check div。我该怎么做?

<?php 

include 'admin/db.php'; /*including database config*/
$result = mysql_query("SELECT * FROM player ORDER BY id");
while($row = mysql_fetch_array($result))
  {?>
    <div align = "center">
      <table border = "1px">
        <tr>
          <th>Name</th>
          <th>Run</th>
          <th>Bowl</th>
          <th>Strike Rate</th>
          <th>4's</th>
          <th>6's</th>
        </tr>
        <tr>
          <div id = 'check'>
           <td><?=$row['name'];?></td>
           <td><?=$row['run'];?></td>
           <td><?=$row['bowl'];?></td>
           <td><?=$row['sr'];?></td>
           <td><?=$row['numberofFours'];?></td>
           <td><?=$row['numberofsixes'];?></td>
          </div>
        </tr>
      </table>
    </div>
<?php 
}
mysql_close($con);

?>

3 个答案:

答案 0 :(得分:1)

你必须使用一些javasrcipt来实现类似的东西。您可以使用Ajax连接到服务器,获取数据并更新页面。

如果需要异步执行此操作,则应通过(例如)Web套接字实现长轮询。我已经重读了你的问题,长期的民意调查肯定是你所追求的。

这应该是一个好的开始How do I implement basic "Long Polling"?

答案 1 :(得分:1)

就像这里提到的其他帖子一样,你需要使用AJAX(异步Javascript和XML)技术来实现这一目标。以下是如何完成此操作的简单示例。

var xhr = new XMLHttpRequest();
xhr.open('POST', url, false);
xhr.onreadystatechange = function() {
    if( xhr.readyState === 4 && xhr.status === 200 ) {
        console.log(xhr.responseText);
    }
};
xhr.send("some=data");

https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest

在服务器上,当初始数据发送到浏览器时,使用时间戳发送它,并在每次XHR请求时将所述时间戳发送回服务器。

同时在服务器上,如果生成了新内容(行),您将需要更新时间戳。 当客户端将请求发送到服务器时,检查两个时间戳以查看它们是否相等,如果不是将数据发送回客户端并更新UI。

现在你有一些工作要做。我还要将你链接到一个“长轮询”示例(来自SO),因为它应该帮助你完成你需要编写的大部分代码。

How do I implement basic "Long Polling"?

答案 2 :(得分:0)

查看互联网上的javascript ajax。

使用jQuery的快速示例(必须使用):

$.post(someURL, somePostData, function(dataReturned){
    //do something with dataReturned
});