0

jQueryFullcalendarプラグインを使用しています。同じページに、サーバーからフェッチされたイベントデータをフィルタリングするために使用されるチェックボックス付きのフォームがあります。eventSourcesこれらのフォーム値をオブジェクトに渡して、開始/終了タイムスタンプと一緒にサーバーに送信されるようにするという考え方です。

ドキュメントには、次のようなサンプルeventSourcesオブジェクトがあります。

$('#calendar').fullCalendar({
   eventSources: [
     // your event source
      {
        url: '/myfeed',
        type: 'POST',
        data: {
          custom_param1: 'something',
          custom_param2: 'somethingelse'
        },
      }
      // other sources...
   ]
});

私が変更したもの:

   eventSources: [
   {
     // ...as above
     data: getFormAsObject(),
     // as above...
   }

フォームの値をdataオブジェクトに渡してほしい。関数ではgetFormAsObject()、フォームをシリアル化し、それを連想配列に変換します。

残っているのは、フォーム送信を乗っ取るだけです。したがって、「送信」ボタンがクリックされた場合、デフォルトのPOSTアクションをキャンセルして、

calendar.fullCalendar("refetchEvents");

しかし、これは機能せず、getFormAsObject()まったく呼び出されません。私は何が間違っているのですか?

4

2 に答える 2

1

問題は、Fullcalendarがそのdataオブジェクトを1回だけ読み取ることです(どうやら)。そのため、関数に設定した場合でも、最初に読み取り、その後は読み取りません。よくわかりませんが、基になるajax()呼び出しがどのように機能するかはわかりません。

eventSourcesそのため、更新を行うたびにを削除して新しいものを読み取るように変更しました。醜いようですが、動作します。

于 2012-11-09T11:28:41.397 に答える
0

ここで最後から2番目のオプション「動的データパラメーター」を使用します: https ://fullcalendar.io/docs/events-json-feed

$('#calendar').fullCalendar({

  events: {
    url: '/myfeed.php',
    data: function() { // a function that returns an object
      return {
        dynamic_value: Math.random()
      };
    }
  }

});
于 2018-11-06T10:55:45.177 に答える