完全加载日历后,如何在fullcalendar上呈现事件?

时间:2017-03-05 19:45:27

标签: javascript jquery fullcalendar

我有一个用户需要填写的表单。表单提交后,用户将被重定向到另一个显示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>

1 个答案:

答案 0 :(得分:0)

我认为以下两种方法的组合可以解决问题:

  1. 制作一个返回您的活动的event feed。这意味着您提供了一个REST资源(新的PHP脚本循环遍历已计算的事件并以event object格式回显它们)并将URL添加为源。
  2. 每隔几秒触发一次refetchEvents方法或任何适合的间隔。
  3. 这不是最优雅的解决方案,但似乎很容易实现。一个更好的解决方案是拥有一个只返回新事件的REST资源,而不是已经渲染的事件。然后你只需要在你自己的ajax函数中检索它们并将它们添加到已经存在的函数中,但这需要更多的实现。

    我希望这有帮助,如果不随意发表评论并澄清:)