fullcalendar mysql select WHERE 当前日期范围

fullcalendar mysql select WHERE current date range

我有 fullcalendar 与 mysql 数据库一起使用 php 从数据库中获取数据。我正在尝试使用来自 fullcalendars 'getview' 的数据修改 select。 我需要每月第一天的当前视图,我正在尝试实现此代码:

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,select 与 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 获取提要吗?

我想出了这个半美元的解决方案。可以,但需要用户进行一些不必要的刷新以获取最新信息。

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'
            }

{)

这会将视图的开始日期 post 设为 resources.php post,我可以在 mysql select 中使用它。您可以从 Fullcalendar 添加您喜欢的任何内容,将其放入 cookie 中并以这种方式在 mysql select 中使用。

不幸的是,这不是完美的解决方案,我仍然希望它在没有 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

得到了输入