如何只将更新的事件作为json发送到fullcalendar上的服务器? [英] How to send only updated events as json to server on fullcalendar?

查看:171
本文介绍了如何只将更新的事件作为json发送到fullcalendar上的服务器?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个约会预约用例,当用户点击时,我可以获得之前存储的所有约会。在添加新约会或更改现有约会并单击提交后,包括较旧约会在内的所有约会都应该到达服务器,并通过创建重复项进行。我想要的只是在由事件创建的json中设置这些约会。

I have a appointment booking usecase where I get the all previously stored appointments when the user clicks. After I add new appointments or change existing ones and click submit, all appointments including the older ones should go to the server, and there by creating duplicates. What I want is to set only those appointments in the a json that were created by events.

$('#calendar').fullCalendar({
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek,agendaDay'
        },
        selectable: true,
        selectHelper: true,
        select: function(start,end,date,jsEvent, view) {                    
           var myDate = new Date();
                var daysToAdd = 45;
                var futureBlockDate = new Date();
                futureBlockDate.setDate(myDate.getDate() + daysToAdd);
                 var allDay = !start.hasTime() && !end.hasTime();

                if (date > futureBlockDate || date<myDate) {

                alert("You cannot set appointment on this day!");    
                }
                else
                {

            var title = prompt('Event Title:');
            var eventData;
            if (title) {
                eventData = {
                    title: title,
                    start: start,
                    end: end

                };
                $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true
            }
            $('#calendar').fullCalendar('unselect');
            $('#calendar').fullCalendar('renderEvent');


        }

        },
        editable: true,
        eventLimit: true,
        events: '/app/fullCalendar/calendarEvents',//gets previous appointments from db
        eventClick: function(event, element) {

             event.title = "CLICKED!";

          $('#calendar').fullCalendar('updateEvent', event);

         }

    });

为了保存数据,我使用

For saving the data, I'm getting the events using

   var eventsFromCalendar = $('#calendar').fullCalendar('clientEvents');

其中包含以前事件的所有事件。

Which gives all events including previous events.

推荐答案

您可以在事件对象中包含自己的字段,并在收集所有事件时按该字段过滤事件。

You can include your own field on event object and filter the events by that field when you collect all events.

eventData = {
                title: title,
                start: start,
                end: end,
                isNew: true //your own field
            };

 var eventsFromCalendar = $('#calendar').fullCalendar('clientEvents', function (event) {
                    return event.isNew == true;
                });

这篇关于如何只将更新的事件作为json发送到fullcalendar上的服务器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆