我终于设法解决了这个问题。这可能不是最好的解决方案,但它有效......
首先,我为日历使用 2 个事件源:
eventSources: [
"events_list.php",
"free_slots.php"
]
它们都返回具有不同 css 属性的事件。第一个为 EventType,第二个为 EventInfo。我知道我可以使用相同的文件,但由于某些原因,这是不可能的......
因此,第一个从 SQL 查询中检索每个事件。第二个使用 jQuery fullCalendar 插件使用的 2 个变量:
$_GET['start'];
$_GET['end'];
然后我只需要做一些计算来检索这两个日期之间的所有事件以及每个事件的可用插槽数......
服务器端脚本返回一个带有“className”选项的 JSON 数组...(+如果需要,空闲槽的数量(取决于使用的 .php 文件))
$Arrayz[] = array('className' => 'EventInfo'); echo json_encode($Arrayz);
所以每个事件的空闲插槽都像事件一样显示,但它们并不是真的......(没有背景颜色,没有边框等......)
之后,我还可以使用 fullCalendar 插件的另一个功能,让用户与真实事件进行交互......
eventClick: function(event) {
if(event.className == 'EventType'){ etc...
可能性是无限的……
希望它会有所帮助。