我有一个用户需要填写的表格。提交表格后,用户将重定向到出现FullCalendar的另一页。我想完全加载日历,对表单中的数据进行一些计算,然后在每个计算之后回荡日历上的事件。我的计算需要大量时间,这就是为什么我希望事件随着计算的进行(以便在此期间看到事件)时,将事件逐个一一出现在日历上。我想将PHP代码放在事件之外:[]以使日历完全加载,然后在日历上逐一回应事件。请帮我!
这是代码:
<script>
$(document).ready(function() {
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,listWeek,agendaDay'
},
theme : true,
titleFormat : 'MMMM D YYYY',
columnFormat: 'dddd D',
allDaySlot : false,
slotDuration : '00:15:00',
minTime : '07:00:00',
firstDay : 1,
/*eventOverlap : false,*/
defaultView: 'agendaWeek',
navLinks: true, // can click day/week names to navigate views
editable: true,
eventLimit: true, // allow "more" link when too many events
timeFormat: 'H:mm',
events: [
<?php
// After each calculation echo an event
echo
" {".
"id:". "'$id',".
"title:". "'$title'". ','.
"start:" . "'$date". "T". "$ActStartTime'" .','.
"end:" . "'$date". "T". "$ActEndTime'".
"}, "
;
?>
]
});
});
</script>
我认为以下两个的组合可以解决:
- 进行返回您的活动的事件提要。这意味着您提供了一个REST资源(新的PHP脚本通过已经计算的事件循环并以事件对象格式回应它们)并将URL添加为feed。
- 每隔几秒钟触发Refetchevents方法或任何间隔似乎很合适。
这不是最优雅的解决方案,但似乎很容易实现。一个更好的解决方案是拥有一个仅返回新事件而不是已经渲染的资源的REST资源。然后,您只需在您自己的Ajax函数中检索它们并将它们添加到已经存在的功能中,但这需要更多的实现。
我希望这会有所帮助,如果没有随意发表评论并澄清:)