0

php/mysql から動的にイベントをロードするために、DojoX Calendar ウィジェット ( http://dojotoolkit.org/reference-guide/1.8/dojox/calendar.html )をカスタマイズしたいと考えています。

イベントが保存され、最初の初期化後にイベントを再度取得する必要がある db テーブルがあります (ajax 呼び出し?) 私の質問は次のとおりです: Dojox カレンダーの例/ドキュメント ページを参照して、どこで JS コードを変更する必要がありますか? 月が変わったときに PHP ファイルを呼び出し (http 投稿または取得)、新しい JSON データセットを取得するには、JS コードでどのような変更を行う必要がありますか?

私もこのスレッドを読みました: dojox.calendar and JsonRest - how to update?

しかし:

  1. HTML、JS、および PHP コードを使用した完全に機能する例 (最小限であっても) が必要です
  2. スタックオーバーフローの投稿ルールとネチケットについては、そのスレッドに投稿できませんでした

誰かがすでにこの種のソリューションを開発していると思います...

誰かが私を助けてくれることを願っています、ありがとう!

4

1 に答える 1

2

イベントの数に応じて、最初にすべてのイベントをカレンダーにロードするだけで、スクロールする月/ビューに関係なく、イベントが表示されます。

データベースバックエンドからイベントをロードする方法の例としては、次のようになります。

もちろん。どうぞ:

phpあなたのファイル(それを呼びましょう)が次の形式calendar-events.phpであなたのmysqlテーブルから次のイベントデータを返したと仮定しましょう:JSON

{
    "items": [
        {
            "id":"0",
            "summary":"An event in the calendar",
            "calendar":"calendar1",
            "startTime":"1351756800",
            "endTime":"1351771200"
        }
    ]
}

次に、データを取得するストアを作成します。

var calendarStore = new ItemFileWriteStore({
    url: "calendar-events.php",
    clearOnClose: true,
    urlPreventCache: true 
});

最後に、ストアをに設定し、 :calendarをレンダリングします。calendar

calendar = new Calendar({
            store: calendarStore,
            dateInterval: "month",
            region: "center",
            roundToDay: false,
            editable: false,
            decodeDate: function(s){
                    return new Date(s * 1000);
            },
            style: "position:absolute;left:10px;top:10px;bottom:10px;right:10px;",
            columnViewProps: {
                    minHours: 0,
                    maxHours: 24
            }
    });
于 2012-12-11T23:03:27.910 に答える