jQuery と AJAX を使用して SQL データベースからデータを取得します。jqGridの使用を検討しています(可能であれば)。データが取得されると、その優先度と承認が必要かどうかに応じて、各行に次の 3 つのオプションのうちの 1 つが表示されます: ドロップダウン ボックス (ユーザーがオプションを選択する必要があります)、送信ボタン (承認するため)受け取られた)、または「不要」と言うことができます。一般的には、次の図のようになります。
AJAX 呼び出しは一定間隔で行われ、30 秒ごとに更新されます。
ユーザーがクリック/選択したときにアクションを必要とするアイテムが発生し、データソースが更新され、応答と応答日時で行が更新されます。
ドロップダウン ボックスのある行が複数ある場合もあれば、送信ボタンのある行が複数ある場合もあります。アイテムが応答されると (または何も要求されない場合)、メッセージは次の更新時に消えます (フィルターで除外されます)。
その他の情報 - ドロップダウンの項目は、各行で同じものになります。また、ユーザーがドロップダウンを開いた場合、選択が行われると間隔が停止し、再開されます (ドロップダウン ボックスが開いている間はグリッドが更新されません)。
このようなことは jqGrid を使用して行うことができますか、または別の jQuery プラグインを使用してより適切/簡単に行うことができますか、または HTML (jQuery を使用) で行う必要がありますか? ご意見をいただければ幸いです。
編集
を使用してグリッドがどのように機能するかを確認するために、現在グリッドをテストしています (データを表示するだけです) setInterval
。以下のコードを使用して間隔を設定します。
iLoad = setInterval(function(){
mytime = new Date();
mytime = new Date(mytime - 60000);
mytimeString = ('00'+(mytime.getHours())).slice(-2) +":"+('00' + (mytime.getMinutes())).slice(-2) + ":"+ ('00' + (mytime.getSeconds())).slice(-2) + "."+ ('000' + (mytime.getMilliseconds())).slice(-3);
var cday = new Date();
var curday = ('00'+(cday.getdate())).slice(-2);
var curmon = ('00'+(cday.getMonth())).slice(-2);
var curyr = cday.getFullYear();
var currdate = curyr +"-"+curmon+"-"+curday;
gridload(id, mytimeString, currdate);
}, 60000);
私が気付いたのは、最初に呼び出されたときにグリッドがGET
データ ソースに対して実行することですが、その後、間隔が再び発生したときに新しいを実行していないことGET
です。関数を呼び出していることを示すログ表示をいくつか入れましたが、グリッド コード内 ( 内loadComplete
) の表示は初回のみ起動します。私が送信している時間は、渡した時間パラメータ以降、テーブル上で何か新しいことを要求しているので、毎回起動することを期待していました.
間隔を設定しているコードは、以前は同じ情報を取得して HTML テーブルに入れていたので、間隔が想定どおりに起動していることがわかります。
グリッドで一度キャッシュまたはロードするように設定されたものはありません。私は何が欠けていますか?GET
間隔がデータに対して後続の処理を行わないのはなぜですか?