0

我在语法上设置日历事件时遇到问题。

我有一个页面,用户可以在其中选择客户端以显示使用下拉列表的事件。我通过 Ajax 调用请求事件。这一切看起来都不错。但是我在 fullCalendar 中设置事件时遇到问题。

这是我设置事件的代码:

success: function(resp){
    var r = resp.output;
    console.dir(r);
    jQuery('#student').html(r.studentname);
    jQuery('#calendar').fullCalendar( 'removeEvents' );  // <= This works
    jQuery('#calendar').fullCalendar( 'events', r.events ); // <= This doesn't
}

这是 ajax 响应的转储:

events       "[{
             id: 1,
             title: 'Acupuncture',
             start: new Date(2013, 5, 29, 10, 00),
             end: new Date(2013, 5, 29, 10, 30),
             allDay: false
             }
             ,
             {
             id: 2,
             title: 'Acupuncture',
             start: new Date(2013, 6, 30, 10, 00),
             end: new Date(2013, 6, 30, 10, 30),
             allDay: false
             }
             ,
             {
             id: 3,
             title: 'Chiropractor',
             start: new Date(2013, 6, 31, 11, 00),
             end: new Date(2013, 6, 31, 11, 15),
             allDay: false
             }
             ]
             "
id          "1"
studentname "Tarah Yates"

我找不到任何关于如何做到这一点的例子,所以我不确定我是否做得对。

我刚刚注意到事件列表周围的引号,也许这就是问题所在?

如果这不是问题,是否有人对它为什么不起作用有任何想法?

4

1 回答 1

0

gwardell 需要迭代响应,以便您可以获取数组的元素。但我会像这样更改对 JSON 的响应类型:

[{
   "id": "1",
   "title": "Acupuncture",
   "start": "29-05-2013 10:00", //adapted this date format is accepted by fullcalendar
   "end": "29-05-2013 10:30",  
   "allDay": false  //You dont need to adapt this it was a mistake of me. Leave it be.
},etc, etc, etc]

请注意,只能有简单的 JSON,不能有带有子数组的复杂 JSON 的响应。

PS。- 去研究一下 NET 上的 JSON 格式,我相信你会明白的。

不确定那条线,但你想做的只会在你在那里时在那个视图中创建事件,当你切换到其他视图时会消失。您要做的是保存到数据库或用于存储数据以存储事件的任何东西。然后它们将是持久的,当您重新获取事件时,事件将出现......所以 jQuery('#calendar').fullCalendar('events', 'refetchevents');

假设您使用 JSON 和 Jquery Ajax 执行此操作,如何在 ajax 调用中传递 ID

$.ajax({
                        type: 'POST',                           
                        url: _url,                          
                        data: {'id': 9999, //Just pass like this or you can set like a function 'id':getMyID(),                                                             
                                'title':name,
                                'start':start,
                                'end':end,
                                'allDay': allDay,
                                'editable': true, 
                                },                                      
                        success: function(data) {           
                            //TODO Do stuff

                        }
                    }); 

或者如果您有一系列事件源

 var othersources = {       
        ausencias: {               
        url: _url,
        type: 'POST',
        data:{
            'id':getMyId(), // 'id':myidvalue                                                   
                         'func':func,
                      'year':y                                      
             },
        cache: false,              
        color: '#C1272D',
        textColor: 'white'                             
        }}
于 2013-07-31T21:03:48.397 回答