我查看了所有示例,但我无法弄清楚为什么FullCalendar不会显示我的事件。日历显示,如果我把json直接放在事件中:它工作,所以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 :(得分:0)
您是否已验证PHP脚本是否返回预期结果?
还要确保Javascript正确调用PHP脚本(您可以在Web服务器访问日志中查看)。如果没有正确调用它,可能需要指定PHP文件的完整路径。
答案 1 :(得分:0)
尝试检查您的日期值是否为: 一个。 IETF格式(例如:“Wed,2009年10月18日13:00:00 EST”) 湾ISO8601格式的字符串(例如:“2009-11-05T13:15:30Z”) C。 UNIX时间戳
我遇到过这样的问题,其中我的日期 - “2012-04-7T12:16:30Z”未被接受。在日期值 - “2012-04-07T12:16:30Z”中添加“0”后,我开始接收JSON事件。
一个棘手的时刻!
希望这有帮助!