2012-01-21 95 views
1

我看了所有的例子,我不明白为什么FullCalendar不会显示我的事件。日历显示出来,如果我直接将json放入事件中:它可以工作,所以json看起来是正确的。请帮忙! - 感谢FullCalendar不显示JSON事件

的Javascript

$(document).ready(function() { 
    $('#calendar').fullCalendar({ 
     header :{ 
      left: 'prev, next, today', 
      center: 'title', 
      right: 'month, agendaWeek, agendaDay', 
      ignoreTimezone: false 
     }, 
     selectable: true, 
     selectHelper: true, 
     editable: true, 
//  events: [{"id":"1","title":"Test","start":"2012-01-20T13:00:00-08:00","end":"2012-01-20T14:00:00-08:00","allDay":false}] WORKS 
     events:'getJSONEvents.php',  
     loading: function(bool) { 
      if (bool) $('#loading').show(); 
      else $('#loading').hide(); 
     } 
    }); 
}) 

PHP

<?php 
    $query = "SELECT * FROM `Events` ORDER BY `id` DESC"; 
     if(GLOBALTESTMODE && $testMode){ 
      $rows = mysql_query($query, $myconnection) or trigger_error("Error: Query failed.".$query, E_USER_ERROR);   
     } else { 
      $rows = mysql_query($query, $myconnection) or trigger_error("Error: Query failed.", E_USER_ERROR);   
     } 


     //write object to array 
     $eventsArray = array(); 
     $events = array(); 
     date_default_timezone_set('America/Los_Angeles'); 
     while($row = mysql_fetch_array($rows, MYSQL_ASSOC)) {  
      $start = $row['start']; 
      $end = $row['end']; 
      $eventsArray['id'] = $row['id']; 
      $eventsArray['title'] = $row['title']; 
      $eventsArray['start'] = date('c', strtotime($start)); 
      $eventsArray['end'] = date('c', strtotime($end)); 
      if ($row['allDay'] == "true") { 
       $eventsArray['allDay'] = true; 
      } else { 
       $eventsArray['allDay'] = false; 
      } 
      $events[] = $eventsArray; 
     } 
    } 

    header('Content-type: application/json'); 
    echo json_encode($events); 
?> 
+0

有没有什么办法可以让你的代码在浏览器中运行,或者它在你的本地机器 – Sabari

回答

0

您已验证了PHP脚本返回预期的结果?

还要确保PHP脚本实际上是由Javascript正确调用的(您可以在Web服务器访问日志中检查此脚本)。如果没有正确调用,可能需要指定PHP文件的完整路径。

+0

是的。脚本调用并返回有效的json。我通过直接将它作为事件加载来验证json的正确加载。 – GeekMom

0

尝试检查您的日期值是否为: a。 IETF格式(例如:“星期三,2009年10月18日13:00:00”) b。一个ISO8601格式的字符串(例如:“2009-11-05T13:15:30Z”) c。 UNIX时间戳

我遇到了这种问题,其中我的日期 - “2012-04-7T12:16:30Z”未被接受。在向日期值添加'0' - “2012-04-07T12:16:30Z”后,我开始接收JSON事件。

一个有趣的时刻!

希望这会有所帮助!