我正在使用php,mysql和js做餐馆应用,但我有一点问题。
当客户订购某物(使用平板电脑)时,我需要在另一个终端显示通知,但使用“简单方法”。
表格订单:
id | id_place | id_meal | id_waiter | status
1 | 3 | 20 | 4 | 0
2 | 4 | 17 | 4 | 0
3 | 2 | 13 | 2 | 0
4 | 1 | 13 | 5 | 1 <-- All these are ordes
我正在考虑做update.php:
$que = mysql_query("SELECT id, id_waiter, status FROM ordes WHERE status = 0");
$notifi = mysql_fetch_array($que);
我让所有订单都处于待机状态(状态= 0),现在我可以显示计算每个服务员行数的结果:
Waiter2 [1] //waiter2 has 1 notification
Waiter4 [2] //waiter4 has 2 notifications
但这些结果必须每5或10秒不断更新。我怎样才能做到这一点?我不想使用jnode,socket或类似的东西。
答案 0 :(得分:3)
使用方法setTimeout()
每X秒调用一次函数,该函数将刷新待机状态下的订单列表
更多信息:https://developer.mozilla.org/en-US/docs/DOM/window.setTimeout
如果您不想重新加载整个页面,则必须使用AJAX 更多信息:https://developer.mozilla.org/en/docs/AJAX
答案 1 :(得分:0)
在PHP页面中,您可以使用while循环并在底部睡眠:
<?php
while (someCondition) {
//Get Data and show.
sleep(5);
}
?>
您可以写一些内容将someCondition
设置为false,以便在需要时停止该过程。
答案 2 :(得分:0)
使用ajax。在这种情况下,我使用了mootools。
var that = this;
var req = new Request.HTML({
method: that.ajax.method,
url: that.ajax.url,
data: {'action' : 'update', 'waiterID': x},
onRequest: function(){ /* do something */},
onComplete: function(){ /* do something */}
}).send();