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);
}

?>

必要なときに何かを書き込んでsomeConditionfalse に設定し、プロセスを停止することもできます。

于 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 に答える