我有完整日历使用mysql数据库使用php从数据库中获取数据。我正在尝试使用fullcalendars' getview'来修改数据。 我需要当月的第一天的观点,我正在尝试实现此代码:
resources:
{
url: 'resources.php',
data: {'period_start': moment( $("#calendar").fullCalendar("getView").intervalStart ).format("YYYY-MM-DD"), 'period_end': moment( $("#calendar").fullCalendar("getView").intervalEnd ).format("YYYY-MM-DD") } ,
// data:{'period_start':test},
type: 'POST',
error: function() {
$('#script-warning').show();
}
},
不幸的是,这总是给我当前的日期而不是视图的开头或其他任何东西。我在这里错过了什么?
一切都完美地转到了mysql,而选择与post一起工作。唯一的事情就是它总能给我今天的日期,这是无用的。
如果我使用此代码,它可以完美运行。点击一个活动时,它会给我当前视图的第一天:
eventClick: function(event) {
alert(moment( $("#calendar").fullCalendar("getView").intervalStart ).format("YYYY-MM-DD"));
},
编辑:
我添加了一个功能:
function start(){
var view =$("#calendar").fullCalendar("getView").start;
return view};
当我在eventclick中使用start()时,它可以很好地工作,但是当我在资源中使用时却不行。我猜我必须将资源构建为一个函数(link),但我太习惯了解这一点。我甚至可以用某种方式使用函数从mysql获取feed吗?
答案 0 :(得分:0)
我设法找出了这个半美元的解决方案。它会这样做,但它需要用户进行一些不必要的刷新才能获得最新的信息。
function start(){return Cookies.get('fullCalendarStart');};
$('#calendar').fullCalendar({
viewRender: function(view) {
Cookies.set('fullCalendarStart', view.intervalStart.format(), {path: ''});
},
resources:
{
url: 'resources.php',
data:{'period_start':start()},
type: 'POST'
}
{)
这会将视图的开始日期发布到resources.php帖子,在那里我可以把它用在mysql select中。你可以在Fullcalendar中添加你喜欢的任何内容,把它放在cookie中,然后用mysql这样选择。
不幸的是,这不是一个完美的解决方案,我仍然希望在没有cookie的情况下让它工作。
修改
更好的解决方案:
resources: function(callback){
setTimeout(function(){
var view = $('#calendar').fullCalendar('getView');
$.ajax({
url: 'feed.php',
dataType: 'json',
cache: false,
data: {
start: view.start.format(),
end: view.end.format(),
timezone: view.options.timezone
}
}).then(function(resources){callback(resources)});
},0);
},
这将添加开始和结束参数,例如在获取事件时。你可以加
$feed_start = $_GET['start'];
来feed.php
并在mysql select中使用变量'$feed_start'
。
我从https://github.com/fullcalendar/fullcalendar-scheduler/issues/246?_pjax=%23js-repo-pjax-container