使用Ajax每1秒循环一次MySQL结果


loop through MySQL result every 1 seconds using Ajax

我有一个类,从数据库得到一个结果,结果是循环通过,数据库正在定期更新,但我不想保持刷新页面,因为一些原因。

//file class.php
 class order {
     function getOrders(){
     //gets data from database
     }
 }
//file main.php
$ai = new order();
$orders = $ai->getOrders();
foreach($orders AS $order){
 //data displayed in a table
}

我想让表自动更新,而不需要重新加载页面。

我知道我必须使用ajax,但我不知道如何在oop中实现

这样写。

$(function () {
  setInterval(function () {
    $("#liveTable").load("path/to/orderList");
  }, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="liveTable"></div>

您需要在html页面上使用javascript和jQuery,以便重新加载页面的一部分。

你可以在你的HTML页面头部添加以下内容:

<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
$(document).ready(function()
{
    theIntervalHandle = setInterval(fetchNewOrders,3000);
});
function fetchNewOrders()
{
    $('#ordersDiv').load('http://your.web.address/class.php');
}
</script>

<div id="ordersDiv"></div>

在您的HTML文件主体中,您希望在其中显示动态内容。这里假设创建输出的文件名为class.php,每3秒取一次数据,因为每秒取数据的频率很高,如果您的流量增加到几十个用户以上,可能会导致问题。