0

現在、jQuery Datepicker を使用して「to」と「from」の範囲を選択し、mysql の検索結果をフィルタリングしています。

私が望むのは、どうにかしてmysqlデータベースを事前に読み取ることができれば、ユーザーが日付ピッカーをクリックすると、ポップアップカレンダーに、データベースで見つかった毎日のアイテム数が(おそらく括弧内に)表示されることです。例えば

     Jan   2013
M  T  W  T  F  S  S 
--------------------
1  2  3  4  5  6  7
  (1)(5)(8)
--------------------
8  9  10 11 12 13 14
        (9)(3)
--------------------
15 16 17 18 19 20 21
(1)(1)(5)(6)
--------------------
22 23 24 25 26 27 28
--------------------
29 30 31
(8)
--------------------

もう少し説明すると、フォト ギャラリー アプリケーションです。写真を表示する日付範囲を選択できるようにしたい...しかし、ユーザーが写真の日付を知らず、単に「ブラウジング」している場合は、カレンダーにどの日に写真があるかを示します ( number) であれば、そのほうがよいでしょう。

多分私はこれと同様にそれを行うことができます, コンテンツの例での年の日: http://keith-wood.name/datepick.html#daymods

私は最初、一連の写真とその撮影日をデータベースに問い合わせる jquery 関数を想像しました。しかし、そこにたくさんある場合、それは消費される可能性があります...そのため、おそらくその場で実行できます。つまり、日付ピッカーをクリックして1か月が表示されると、その月の結果のみが照会されます...しかし、その後月が変更された場合、その場で再度クエリを実行する必要があります....

これは私の能力を超えてしまう可能性があると思いますが、見ていきます。

前もって感謝します。

4

1 に答える 1

0

単純な解決策は、すべての日付の合計写真数を取得し、それらをオブジェクトに保存することです。何年にもわたるデータがあっても、毎日のカウントだけを保存している場合、これがメモリを大量に消費することはないと思います

Ajax リクエストでデータを取得できます。

$.ajax({
   dataType: "json",
   url: url,
   data: { date: date },
   success: success
});

ここurlで、 は Web サーバーから要求する URLでありsuccess、応答を処理するコールバックです。リクエストを処理し、JavaScript で簡単に解釈できる形式 (JSON など) で MySQL からデータを返すには、サーバー側のコードを記述する必要があります。

データを取得したら、datepicker のbeforeShowDayオプションを使用して、カレンダーの各日付を表示する前に操作できます。たとえば、その日付の写真の総数を含むツールチップを追加できます。

/* Assume data stored in var count */
$("#datepicker").datepicker(
    beforeShowDay: function(date) {
        return [ true, "", count[date] ];
    }
);

これは非常に単純化しすぎています (たとえば、何らかのエラー チェックを行う必要があります) が、要点は理解できます。このアプローチの良い例がここにあります。

メモリ消費が心配な場合は、現在の月のカウントのみをプリロードし、Ajax リクエストを送信して、ユーザーが日付ピッカーに表示される月または年を変更したときにデータを更新することができます。

$("#datepicker").datepicker(
    onChangeMonthYear: function(year, month, inst) {
        /* Ajax request */
    }
);
于 2013-11-05T23:24:35.637 に答える