Fullcalendar 的 eventSources 选项值来自 PHP Ajax

Fullcalendar's eventSources option value from PHP Ajax

我正在使用 Fullcalendar V4。 PHP Ajax 的 eventSources 选项出现问题。

在 Javascript 我正在使用:

var eventSource = "data.php?value1=" + item_id;
calendar.addEventSource(eventSource);

来自 PHP 我正在发送:

echo '[{"id":"1","title":"All Day Event1","start":"2019-08-02","backgroundColor":"red"},{"id":"2","title":"All Day Eventssss2","start":"2019-08-04"},{"id":"3","title":"All Day Eventssss3","start":"2019-08-06"},{"id":"4","title":"All Day Eventssss4","start":"2019-08-08"}]';

这工作正常。

现在我想使用 eventSources 的选项,这里有描述:https://fullcalendar.io/docs/event-source-object

为此,我从 PHP 发送:

echo '[{"events" : [{"title" : "event1", "start" : "2019-08-01"},{"title" : "event2", "start" : "2019-08-05"}],"color" : "black"}]';

但这不起作用。控制台中没有显示错误。

请帮忙!

您误会了,这不是事件源功能的工作原理。事件源的想法是定义多个不同的源,从中下载事件数据。每个源也可以有自己的属性,通过创建一个 event source object 来定义 - 但这是你在 JavaScript 代码中而不是在服务器端 JSON 中做的事情。

服务器端JSON只是用来创建实际事件的数组,而不是关于事件源的数据。事件源定义(除其他事项外)从中获取事件的位置(即服务器上的 URL),因此在定义事件源之前等到 URL 被访问是不合逻辑的 -到时候就晚了。

正确定义事件源对象的方法如下:

var eventSource = {
  "id": 1, 
  "url": "data.php?value1=" + item_id,
  "color" : "black"
}
calendar.addEventSource(eventSource);