如何更新事件以FullCalendar开始



我正在尝试使用我将事件的更新开始日期更新到新的一天。我有一个运行"客户端"方法的保存按钮,可以返回所有事件以插入/更新到数据库。我的问题是在将事件拖到新的一天时返回正确的事件开始日期。

我正在执行此操作以更新事件数据:

$('#calendar').fullCalendar({
    eventDrop: function(event, delta, element) {
        event.title = "NEW TITLE!";
        event.start = event.start.format();
        event.color = "blue";
        console.log(event.start.format());
        console.log(event.start);
        console.log(event.start._i);
        console.log(event.title);
        console.log(event.color);
        $('#calendar').fullCalendar('updateEvent', event); //update the event data
    }
}) 

和我返回所有事件的功能:

function saveEvents() {
    //get events array
    var events = $('#calendar').fullCalendar('clientEvents');
    console.log(events);
}

但是,使用此代码,标题和颜色更新正常,但开始日期不会更新。使用Console.Log,正确返回新标题和颜色,但开始日期是原始日期,而不是将事件拖动到的新日期。在我的SaveEvents函数中返回的事件数据相同:新标题和颜色是正确的,但不正确。

奇怪的事情是,在我记录事件的三种方式中,只有event.start.format()显示正确的新日期。如何保存新日期,因此当调用"客户端"时,返回正确的新数据?

您能解释一下"原始日期"的含义,而"新日期"应该是什么?因为您似乎没有更新开始日期,因为您仅修改其格式。

创建一个开始的矩副本,格式化并附加到新事件。将您的Ajax调用在EventDrop回调中,以在FullCalendar的初始化中。使用PHP和MySQL的示例解决方案:

$('#calendar').fullCalendar({
    eventDrop: function(event, delta, element) {
          var event_format = event;
          event_format.start = moment(event.start).format();
          $.ajax({
              url : "script.php",
              data : event=JSON.stringify(event_format),
              type : "POST"
          });
 }
}) 

php:

<?php
    $event = json_decode($_POST['event']);
    $query = "UPDATE x SET start = '$event->start'";
    mysql_query($query) or die ($query);
 ?>

为终点做同样的事情是一个好主意:)

相关内容

  • 没有找到相关文章

最新更新