经过许多天[9],我已经到了需要寻找另一个日历或放弃的地步。。使用fullcalendar,我让json-events.php将mysql数据发送到我的staff_calendar.php页面,数据流显示在firebug中,日历显示在页面中,但数据没有显示在实际的fullcalendal中,有人能帮忙吗?
是什么阻止了在我的页面中呈现此数据?
xxjson-events.php
<?php
mysql_select_db($database_ghl_portal, $ghl_portal);
$query_rsXXCal = "Select events.* , UNIX_TIMESTAMP(start_date) as start_date, UNIX_TIMESTAMP(end_date) as end_date From events";
$rsXXCal = mysql_query($query_rsXXCal, $ghl_portal) or die(mysql_error());
$row_rsXXCal = mysql_fetch_assoc($rsXXCal);
$totalRows_rsXXCal = mysql_num_rows($rsXXCal);
$result = mysql_query($query_rsXXCal) or die(mysql_error());
while($row = mysql_fetch_assoc($result)){
$eventsArray = array();
$eventsArray['title'] = $row['title'];
$eventsArray['start'] = $row['start_date'];
$eventsArray['end'] = $row['end_date'];
}
header('Content-type: application/json');
echo json_encode($eventsArray)
?>
这在浏览器和;firebug as:
{"title":"Visit","start":"1330077690","end":"1330081890"}
calendar.php
script type='text/javascript'>
$(document).ready(function() {
$('#calendar').fullCalendar({
editable: false,
eventSources: [
{
url: '/xxjson-events.php',
async: 'false' // No longer asynchronous
}
],
loading: function(bool) {
if (bool) $('#loading').show();
else $('#loading').hide();
}
}); });
</script>
感谢任何能够阐明这一点的人,无论它多么微小!
首先我怀疑是因为
async: 'false'
应该是…
async: false
而且,默认情况下,allDayDefault设置为true,因此如果您没有显示allDay事件,那么您实际上不会看到它们。
如果您不想显示全天活动,请添加。。。
allDayDefault: false
到初始化。另一方面,如果您确实想显示allDay事件,则需要向数据库表中添加另一个名为allDay的字段,并根据事件的调用将其设置为true或false。将它从数组中拉出,它就会显示出来。如果这有帮助,请告诉我。
我得到了!所以,fullcalendar解析器并没有错误。我认为JSON是一个标准。。。不幸的是,事实并非如此(可能只是在我的情况下:P)。因此,servlet的JSON响应如下所示:
{"id":"68","title":"ddd","start":"2012-03-28","end":"2012-03-29"}
我只是在从servlet发送之前添加"["one_answers"]",它就可以工作了!
[{"id":"68","title":"ddd","start":"2012-03-28","end":"2012-03-29"}]
我希望它能对像我这样的人有所帮助;-)