1

我使用 php 与 mysql 数据库一起使用 fullcalendar 从数据库中获取数据。我正在尝试使用来自 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() 时,它可以完美运行,但在资源中使用时却不行。我猜我必须将资源构建为一个函数(链接),但我太菜鸟无法理解这一点。我什至可以以某种方式使用函数从 mysql 获取提要吗?

4

1 回答 1

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 中使用 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.php 并在 mysql select 中$feed_start = $_GET['start'];使用该变量。'$feed_start'我从https://github.com/fullcalendar/fullcalendar-scheduler/issues/246?_pjax=%23js-repo-pjax-container得到输入

于 2017-01-10T09:40:06.340 回答