fullcalendar - 如何在调用 eventDrop 时发送 ajax 请求以更新 FullCalendar UI 中的事件?

标签 fullcalendar

我正在尝试使用这个很棒的用户界面“FullCalender”,但我想做的是在用户移动事件时发送一个 ajax 请求来更新数据库中的事件数据。

因此,如果用户想要将事件移动到日历中的不同日期,那么我需要能够使用 ajax 请求将请求发送到数据库。

我如何收集新信息,如果约会被移至新日期或新时间,我如何获取新信息以便将其传递到服务器?

另外,如果用户通过扩展而不是通过拖放事件更改时间,我应该使用什么方法发送相同的请求?

$(document).ready(function() {
    $('#calendar').fullCalendar({

        editable: true,

        events: "json-events.php",
        timeFormat: 'h:mm{ - h:mm}',
        defaultView: 'agendaDay',


        eventDrop: function(event, delta, minuteDelta, allDay, revertFunc) {

            if (!confirm("Are you sure about this change?")) {
                revertFunc();
            }
            // AJAX call goes here
            $.ajax();

        },

        loading: function(bool) {
            if (bool) $('#loading').show();
            else $('#loading').hide();
        }

    });
});

最佳答案

看一下函数的参数:deltaminuteDeltaallDay。那些告诉你事件是如何在几天、几分钟内被修改的,以及它是否被移动到全天时段。 事件 本身应该包含一个标识符,以便您可以在数据库中识别它。

我为我创建了一个辅助函数 updateEventTimes,它只是通过一个额外的 bool 参数从 eventDropeventResize 调用。

函数大致如下所示:

/*
 * Sends a request to modify start/end date of an event to the server
 */
function updateEventTimes(drag, event, dayDelta, minuteDelta, allDay, revertFunc)
{
  //console.log(event);
  $.ajax({
    url: "update.php",
    type: "POST",
    dataType: "json",
    data: ({
      id: event.id,
      day: dayDelta,
      min: minuteDelta,
      allday: allDay,
      drag: drag
    }),
    success: function(data, textStatus) {
      if (!data)
      {
        revertFunc();
        return;
      }
      calendar.fullCalendar('updateEvent', event);
    },
    error: function() {
      revertFunc();
    }
  });
};

关于fullcalendar - 如何在调用 eventDrop 时发送 ajax 请求以更新 FullCalendar UI 中的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18238405/

相关文章:

jquery - FullCalendar - 在议程 View 中删除时间轴?

javascript - fullCalendar:从 Controller JSON 获取数据

javascript - FullCalendar 在鼠标悬停时更改单元格颜色

reactjs - FullCalendar - 添加完全自定义上一个/下一个按钮的最佳方法?

javascript - 完整日历删除数据库中外部事件的编辑描述

javascript - 在 `$scope.eventSource` 上,属性 `className` 不相加 - 问题

javascript - Fullcalendar:在获取 JSON 数据时如何为特定事件单独更改事件颜色

asp.net-mvc-2 - 事件不显示开始到结束

javascript - 为什么 JSON.stringify($ ('#calendar' ).fullcalendar ('clientEvents' )) 失败了?

javascript - Fullcalendar - 需要事件不超过一天 - 使用 selectAllow 但 allDay 问题