1

我正在使用 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、套接字或类似的东西。

4

3 回答 3

3

使用该方法setTimeout()每隔 X 秒调用一个函数,该函数将刷新待机状态的订单列表更多信息:https ://developer.mozilla.org/en-US/docs/DOM/window.setTimeout

如果您不想重新加载整个页面,则必须在此处使用 AJAX 更多信息:https ://developer.mozilla.org/en/docs/AJAX

于 2012-12-05T15:17:27.517 回答
0

在 PHP 页面中,您可以使用 while 循环并在底部休眠:

<?php

while (someCondition) {
    //Get Data and show.
    sleep(5);
}

?>

您也可以在需要时写入一些内容以设置someCondition为 false 以停止该过程。

于 2012-12-05T15:18:31.457 回答
0

使用阿贾克斯。在这种情况下,我使用了 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();
于 2012-12-05T15:19:52.653 回答