2017-03-05 71 views
0

我有一个表格,用户需要填写。表单提交后,用户被重定向到fullcalendar出现的另一个页面。我想完全加载日历,使用表单中的数据进行一些计算,并在每次计算后在日历上回显事件。我的计算需要很多时间,这就是为什么我希望事件在计算过程中逐一出现在日历上(以便用户可以看到在此期间准备好的事件)。我想将PHP代码放置在事件之外:[],以便日历完全加载,然后在日历上逐个回显事件。请帮帮我 !!!日历完全加载后,如何在fullcalendar上呈现事件?

下面是代码:

<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> 

回答

0

我认为以下两者的结合会做的伎俩:

  1. 做一个event feed返回您的活动。这意味着你提供了一个REST资源(新的PHP脚本,循环已经计算的事件,并以event object格式回显它们),并将该URL添加为提要。
  2. 每隔几秒触发refetchEvents方法或任何间隔看起来合适。

这还不是最完美的解决方案,但它似乎很容易实现。更好的解决方案是使REST资源只返回新事件,而不是已经呈现的事件。然后,您只需在自己的ajax函数中检索它们并将其添加到已有的函数中,但这需要更多的实现。

我希望这可以帮助,如果没有随意评论和澄清:)

+0

不知道如何实现这个 – Elliott08

+0

我想从PHP脚本发送每个事件的信息阿贾克斯,但问题是,阿贾克斯只能接收结果,然后它结束 – Elliott08

+0

这就是为什么你需要通过Ajax发送多个请求到你的PHP脚本。您可以每隔几秒发送一次请求,询问是否计算了新事件,或者您是否知道事件ID,您可以为每个ID发送请求:/getEvent.php?id=123 –

相关问题