【发布时间】:2020-08-10 21:22:12
【问题描述】:
我正在实施一个食品状态跟踪器,其中每个订单都有一个订单号。
当页面加载时,我执行 AJAX 调用以获取订单的当前状态。此状态附加到我的div。现在,当我的管理员更改订单状态时,我希望将新状态附加到 div 而不会丢失当前状态。
我试过这样做,但是当我的页面重新加载时,过去的状态会丢失。
下面是部分代码:
<!-- I used this for page reload -->
<meta http-equiv="refresh" content="60"/>
<div id="progressbar" style="border:1px solid white;width:75%;margin:20px auto; display: flex;
padding:10px; flex-wrap: wrap;flex-direction: row; justify-content: space-around;">
</div>
<script>
$(document).ready(function()
{
var orderNo = "<?php echo $orderNo; ?>";
alert(orderNo);
$.ajax({
url:'action.php',
method:'post',
data:{orderNo,orderNo},
success:function(response)
{
$("#progressbar").append(response);
}
});
});
</script>
然后在我的action.php 文件中:
// ORDER PROGRESS
if (isset($_POST['orderNo']))
{
$orderNo=$_POST['orderNo'];
$orderSt="SELECT O_Status from orders WHERE O_No='$orderNo'";
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$orderRes=$conn->query($orderSt);
$orderRow=$orderRes->fetch(PDO::FETCH_ASSOC);
$orderStatus=$orderRow['O_Status'];
echo $orderStatus;
}
为了重新加载我使用的页面:
<meta http-equiv="refresh" content="60"/>
【问题讨论】:
-
您需要将所有状态保存在服务器上,并在一次调用中返回所有状态。如果用户想在另一台计算机上查看他的状态怎么办?
-
@mplungjan 是的,他可以,因为我正在跟踪我的用户 ID,即他已经在系统上注册了
-
为什么不直接再次发送 AJAX 请求而不是重新加载整个页面?
-
@RoryMcCrossan 是的,我想到了。虽然我不知道该怎么做
-
我在下面为你添加了一个例子