Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 指定Fullcalendar'的数据;事件源_Javascript_Ajax_Jquery_Fullcalendar - Fatal编程技术网

Javascript 指定Fullcalendar'的数据;事件源

Javascript 指定Fullcalendar'的数据;事件源,javascript,ajax,jquery,fullcalendar,Javascript,Ajax,Jquery,Fullcalendar,我正在使用jQuery Fullcalendar插件。在同一页上,我有一个带有复选框的表单,用于过滤从服务器获取的事件数据。我的想法是将这些表单值传递到eventSources对象中,以便将它们与开始/结束时间戳一起传输到服务器 有这样一个示例eventSources对象: $('#calendar').fullCalendar({ eventSources: [ // your event source { url: '/myfeed',

我正在使用jQuery Fullcalendar插件。在同一页上,我有一个带有复选框的表单,用于过滤从服务器获取的事件数据。我的想法是将这些表单值传递到
eventSources
对象中,以便将它们与开始/结束时间戳一起传输到服务器

有这样一个示例
eventSources
对象:

$('#calendar').fullCalendar({
   eventSources: [
     // your event source
      {
        url: '/myfeed',
        type: 'POST',
        data: {
          custom_param1: 'something',
          custom_param2: 'somethingelse'
        },
      }
      // other sources...
   ]
});
我将其修改为:

   eventSources: [
   {
     // ...as above
     data: getFormAsObject(),
     // as above...
   }
我希望表单的值被传递到
data
对象中。在
getFormAsObject()
函数中,我序列化表单并将其转换为关联数组

剩下的就是劫持表单提交。因此,如果单击“提交”按钮,我将取消默认的POST操作,并调用

calendar.fullCalendar("refetchEvents");
但是,这不起作用,而且根本不会调用
getFormAsObject()
。我做错了什么?

问题是(似乎)Fullcalendar只读取
数据
对象一次。所以它第一次读它,然后就不再读了,即使我将它设置为一个函数。我不确定,但我认为可能是底层的
ajax()
调用如何工作

因此,我将其更改为删除
事件源
,然后在每次更新时读取新的事件源。看起来很难看,但很有效。

使用“动态数据参数” 此处的最后二个选项:


奇怪的是,该函数在页面加载时被调用一次(并且日历被初始化),但之后就不再调用了。我还尝试了
data:function(){return getFormAsObject();},
,但这不会触发它。在这里不容易遵循事件序列。首先解决控制台中是否抛出任何错误。此处的代码或完整序列描述不足,无法真正了解应用程序的工作方式。例如,如果你在页面加载时初始化插件…表单元素可能还没有被填充yetno一切都按照描述工作(我想!),插件确实工作;但它似乎忽略了
数据
对象。我想我传错了。
$('#calendar').fullCalendar({

  events: {
    url: '/myfeed.php',
    data: function() { // a function that returns an object
      return {
        dynamic_value: Math.random()
      };
    }
  }

});