Fullcalendar-事件和事件源中的extraParams没有从element.value中读取



的设置

我使用的是Fullcalendar v4,在extraParams和通过AJAX将它们发送到服务器时遇到了一些问题。

我想做的(但失败了(是使用这个:

var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: ['interaction','dayGrid'],
defaultView: 'dayGridMonth',
selectable: true,
selectMirror:true,
.......
eventSources: [{
url: 'ajax/fc.php?dropdown='+$("#dropdown").val(),
method: 'POST',
cache: false,
extraParams: {
month: $("#monthPicker").val(),
dropdown: $("#dropdown").val(),
person: $("#person").val(),
phone: document.getElementById("phone").value,
testtext: 'hardcoded text'
},
}],
......
});

月份、下拉列表、人员、电话的值是从表格中提取的。

问题

转储GETPOST变量(服务器端(,只是为了检查我收到的内容,会为除month参数之外的所有内容返回0/空字符串-它显示正确。

GET参数只是用于测试目的,document.getElementById位也是如此——我想看看如果我使用它们(什么都没有(,是否会显示任何内容。

即使我将代码更改为使用events而不是eventSources,问题仍然存在。

经过进一步的实验,日历似乎受到初始化时出现的元素值的影响-如果我对下拉列表、人员和其他输入/选择元素的值进行硬编码,则只发送它们(值的任何更改都将被忽略(。如果我只是设置初始值(即<input id="person" name="person" value="Joe">(,也会发生同样的情况。

问题

我如何才能强制calendar(而不是破坏和重新创建它(实际注意到我要用作extraParams的输入值的变化?

如果我误解了extraParams的使用,我的替代方案是什么?我需要能够向服务器发送各种数据,以便获得一组特定的事件。

多亏了这个SO答案,才在这段时间内解决了问题。由于参数是动态的,因此需要按照文档中的说明发送参数(动态extraParams参数部分(:

var calendar = new Calendar(calendarEl, {
events: {
url: '/myfeed.php',
extraParams: function() { // a function that returns an object
return {
dynamic_value: Math.random()
};
}
}
});

在我的情况下,它将变成:

var calendarEl = document.getElementById('calendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: ['interaction','dayGrid'],
defaultView: 'dayGridMonth',
selectable: true,
selectMirror:true,
.......
event: {
url: 'ajax/fc.php',
method: 'POST',
cache: false,
extraParams: function() {
return {
month: $("#monthPicker").val(),
dropdown: $("#dropdown").val(),
person: $("#person").val(),
phone: document.getElementById("phone").value,
testtext: 'hardcoded text'
}
},
},
......
});

相关内容

  • 没有找到相关文章

最新更新