こちらで質問するのは初めてです。私は jQuery プラグイン fullCalendar を使用していますが、ほとんどの場合、1 つの問題を除いてうまく機能しています。ユーザーがチェックボックスをクリックすると、カレンダーをリロードし、データベースにクエリを実行して、フィルター処理された結果を取得するカレンダーイベントにフィルターを追加しました。問題なくこれを行うことができますが、現在の月ではない月にいる場合、カレンダーは常に現在の月に戻り、フィルタリングされた結果が表示されます。その後、ユーザーは前/次のボタンをクリックして、元の状態に戻る必要がありました。
ある程度までは機能すると思われる解決策の 1 つが次のとおりです。
function reloadCalendar(formInputs, height, view, startView, endView) {
var source1 = {
url: 'ajax.php?c=careerDevCalendar&a=getEvents',
data: {
filter: formInputs
}
};
var s = Math.round(startView.getTime() / 1000);
var e = Math.round(endView.getTime() / 1000);
var source = 'ajax.php?c=careerDevCalendar&a=getEvents&startF='+s+'&endF='+e+'&'+formInputs;
$("#calendar").fullCalendar('removeEvents');
$("#calendar").fullCalendar('removeEventSource', source1);
$("#calendar").fullCalendar('addEventSource', source);
$("#calendar").fullCalendar('rerenderEvents');
}
フィルター処理された結果を JSON 配列で取得でき、カレンダーはたまたまその月のままですが、カレンダーにイベントが表示されません。カレンダーを現在の月に戻さずにイベントをフィルタリングするために何ができるかについて、誰かアイデアはありますか?
前もって感謝します