2

何らかの理由で、POST 後にカレンダーを再レンダリングできません。その時点まではすべてうまくいきます。

$('#calendar').fullCalendar({
    ...
    select: function (startDate, endDate) {
        $.ajax({
            url: 'data.php',
            type: "POST",
            data: {
                'start':startDate,
                'end':endDate,
                }
            success: $('#calendar').fullCalendar('rerenderEvents')
            }
     ...
    });

データは正常に投稿され、php スクリプトは新しいイベントをデータベースに追加します。唯一の問題は、カレンダーがデータベース内の新しいデータで再レンダリングされないことです。

ページを更新すると (Firefox では F5)、新しいイベントがレンダリングされます。明らかに、イベントがデータベースにコミットされたらすぐに表示されるようにする必要があります。ユーザーがページを更新することは期待できません。

私は、この成功ステートメントの多くの順列を行いました。例えば:

function () {
    $('#calendar').fullCalendar('rerenderEvents');
}

そして(私のPHPは「成功」を返します)、

function (data) {
    if (data === 'success') $('#calendar').fullCalendar('renderEvents');
}

ただし、何があっても、データベースに追加された新しいイベントは、画面を更新した場合にのみ表示されます。誰かが私が間違っているかもしれないことを提案できますか?

4

1 に答える 1

4

試す:

$('#calendar').fullCalendar("refetchEvents");

2013-01-31 を更新。

これが機能するのは、FC にイベント ソースを再読み取りさせ、カレンダーを再度レンダリングさせるためです。

ただし、それが力ずくの解決策である場合、同じことを達成する別の方法 (可能な場合) は、たとえばdayClick、新しいイベントを作成するときにこれを行うことです。

  • を使用してイベントDBを更新します$.ajax
  • 対応する新しいイベントを作成します。 yourcal.fullCalendar('renderEvent', {id:x,start:timest,end:timend,title:txt}, true);
于 2012-09-07T23:44:34.340 に答える