Javascript 仅当数据库有新记录时才重新加载div
我有下面的代码,它是重新加载新记录,如果插入。 在页面加载时,它可以正常工作,但在获取新数据时重新加载div之后,它会不断地重新加载,并且不包括包含在order\u new\u orders.php中的文件 我只希望在插入新记录时重新加载div,然后保持关闭 order\u new\u orders.phpJavascript 仅当数据库有新记录时才重新加载div,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有下面的代码,它是重新加载新记录,如果插入。 在页面加载时,它可以正常工作,但在获取新数据时重新加载div之后,它会不断地重新加载,并且不包括包含在order\u new\u orders.php中的文件 我只希望在插入新记录时重新加载div,然后保持关闭 order\u new\u orders.php **EXAMPLE:** $sqla = "select order_id from orders where status = 0 and store_id = '&quo
**EXAMPLE:**
$sqla = "select order_id from orders where status = 0
and store_id = '".$_SESSION['ses_user_idx']."'";
$sqlb = $dba2->query($sqla);
while ($sqlc = $sqlb->fetch_assoc()){
include ('inc/afile.php');
echo $sqlc['name'];
}
代码:
var currentNewOrders = "";
function auto_loadNewOrders(){
$.ajax({
type: 'POST',
url: 'order_new_orders.php',
success: function(data){
if(currentNewOrders !== data) {
$("#newOrderRefresh").html(data);
currentNewOrders = data;
}
}
});
}
auto_loadNewOrders();
setInterval(auto_loadNewOrders,1000);
PHP
order\u new\u orders.php
<?php
//Dummy Data
$datas = array(
array('id' => 1, 'name' => 'Dummy Name1', 'age' => 25),
array('id' => 2, 'name' => 'Dummy Name2', 'age' => 28),
array('id' => 3, 'name' => 'Dummy Name2', 'age' => 28),
);
if (isset($_GET['checkNew']) && isset($_GET['lastDataID'])) {
if (count($datas) > $_GET['lastDataID']) {
echo 1;
} else {
echo 'No new Data';
}
exit;
}
//Data Output structure
$htm = "<table border='1'>
<tr>
<th>Name</th>
<th>Age</th>
</tr>
";
foreach ($datas as $row) {
$htm.="<tr class='data-row' data-row-id='$row[id]'>
<td>$row[name]</td>
<td>$row[age]</td>
</tr>";
}
$htm.="</table>";
echo $htm;
exit;
我试过了,但不是每秒钟都能刷新一次。请编写任何查询,而不是伪查询data@usman610如果您想要查询,请给我您的数据库表
结构。您可以进行任何查询,因此我将根据需要调整查询。您只需注意此代码
。每一行数据都必须包含该行的IDim,并添加此$sqlx4=“从状态为0的订单中选择i,存储id=”。“$”会话['ses_user_idx']。”$sqlx5=$dba2->query($sqlx4);虽然($sql6=$sqlx5->fetch_array()){$datas[]=$sql6;}
它正在显示记录,但没有更新。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="newOrderRefresh"></div>
<script>
$(document).ready(function() {
auto_loadNewOrders();
setInterval(checkForNew, 1000);
});
function auto_loadNewOrders() {
$.ajax({
type: 'POST',
url: 'order_new_orders.php',
success: function(data) {
$("#newOrderRefresh").html(data);
}
});
}
function checkForNew() {
var lastData = $('.data-row').last().attr('data-row-id');
$.ajax({
type: 'POST',
url: 'order_new_orders.php?checkNew&lastDataID=' + lastData,
success: function(data) {
if (data == 1) {
auto_loadNewOrders();
}
}
});
}
</script>