我在编写日历事件时遇到问题。
我有一个页面,用户可以选择客户端显示使用下拉列表的事件。我通过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"
我找不到任何关于如何做到这一点的例子,所以我不确定我是否做得对。
我刚注意到事件列表周围的引号,也许这就是问题?
如果那不是问题,那么有没有人想过为什么它不起作用?
答案 0 :(得分: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格式,你会发现它我确定。
不确定该行,但您想要做的只会在您在那里时在该视图中创建事件,当您切换到其他视图时将会消失。您要做的是保存到数据库或用于存储数据的任何内容以存储事件。然后它们将是持久的,当你 refetchevents 时,事件将会发生...所以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
}
});
或者如果你有一系列的eventsources
var othersources = {
ausencias: {
url: _url,
type: 'POST',
data:{
'id':getMyId(), // 'id':myidvalue
'func':func,
'year':y
},
cache: false,
color: '#C1272D',
textColor: 'white'
}}