FullCalendar - 通过ajax发送视图
问题描述:
我正在尝试将fullCalendar插件集成到网站中。我遇到的问题是,我试图通过json/$。ajax方法将当前视图发送给它,作为自定义参数发送给月,议程日等。FullCalendar - 通过ajax发送视图
$('#calendar').fullCalendar({
events: {
url: 'feed.php',
type: 'POST',
data: {
view: $('#calendar').fullCalendar('getView').name
},
error: function() {
alert('there was an error while fetching events!');
}
}
});
以上是返回任何错误但自定义view
变量不与正常的值一起通过。
我曾尝试以下:
$('#calendar').fullCalendar({
events: {
url: 'feed.php?view=' + $('#calendar').fullCalendar('getView').name,
.......
但这只是添加?view=undefined
到Ajax调用。我知道$('#calendar').fullCalendar('getView').name
的工作原理是因为它返回正确的值,所以它必须是view: $('#calendar').fullCalendar('getView').name
行,但我不确定是什么。
答
它看起来像你试图访问fullCalendar之前已经初始化。尝试将其分解成不同的步骤:
$('#calendar').fullCalendar();
var viewName = $('#calendar').fullCalendar('getView').name;
$('#calendar').fullCalendar({
events: {
url: 'feed.php',
type: 'POST',
data: {
view: viewName
},
error: function() {
alert('there was an error while fetching events!');
}
}
});
答
这是因为您在初始化之前调用“fullCalendar()”,并且不允许这样做。
$('#calendar').fullCalendar({...});
这意味着$( '#日历')(jQuery对象)将会由您发送的值{...}进行初始化。
因此,在完成fullCalendar()初始化之前,您不能使用它。
答
只是想我会将我的解决方案添加到此问题中以备将来参考。
通过简单地确定start
和end
时间戳之间的天数,通过fullCalendar传递到我的服务器端PHP我可以知道我们正在检索哪个视图数据。
$NumberOfDaysInView = abs($_GET['start'] - $_GET['end'])/60/60/24;
希望这有助于!
使用此方法当用户切换视图时,我将如何更新viewName变量? – 2011-04-13 08:07:40
你的原始代码实际上有同样的问题(如果它工作的话)。对'getView'的调用是立即进行的,而不是在发出ajax请求时。我不熟悉fullCalendar给你一个很好的解决方案。 – gilly3 2011-04-13 08:11:31