fullcalendar mysql选择WHERE当前日期范围

时间:2017-01-07 20:29:18

标签: jquery mysql fullcalendar fullcalendar-scheduler

我有完整日历使用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吗?

1 个答案:

答案 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

获得了输入