Fullcalendar不显示数据库中的事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fullcalendar不显示数据库中的事件相关的知识,希望对你有一定的参考价值。
我正在制作日历以显示有关预订的一些信息。我已经阅读了有关的文档,并且我已经实现了日历和必要的脚本来获取我需要的事件信息,但是我遇到了问题,我无法理解这些信息是否从php脚本传递到日历。
它不显示任何彩色单元格。这是代码,任何人都可以帮助我吗?
PHP脚本
<?php
require_once 'Config.php';
$start = $_GET['start'];
$end = $_GET['end'];
$events = array();
$stmt = $db->prepare('SELECT reservation_id, check_in, check_out FROM reservations WHERE check_in = ? AND check_out = ?');
$stmt->execute(array($start, $end));
$results = $stmt->fetchAll();
foreach($results as $row){
$events[] = array(
'id' => $row["reservation_id"],
#'title' => $row["title"],
'start' => $row["check_in"],
'end' => $row["check_out"]
);
}
echo json_encode($events);
?>
JS代码
$(document).ready(function(){
calendar();
});
var calendar = function(){
$('#calendar').fullCalendar({
events: {
url: 'CalendarController.php',
backgroundColor: 'red'
}
});
}
});
从chrome检查器,我可以看到传递获取信息的ajax调用并没有记录错误。也许我在PHP脚本中出错了?
答案
当我在回复评论时写道,我发现由于一个奇怪的原因,如果在php脚本的json响应中省略了标题键,则fullcalendar插件将不会加载数据。我还修改了我的PHP代码来提供响应,而不使用从fullcalendar传递的$_GET
参数,当使用ajax加载数据时。
这是代码,我希望它对有同样问题的其他人有用。
<?php
require_once 'Config.php';
$events = array();
$stmt = $db->prepare('SELECT reservation_id, check_in, check_out FROM reservations');
$stmt->execute();
$results = $stmt->fetchAll();
foreach($results as $row){
$events[] = array(
'id' => $row["reservation_id"],
'title' => 'ND',
'start' => $row["check_in"],
'end' => $row["check_out"]
);
}
echo json_encode($events);
?>
以上是关于Fullcalendar不显示数据库中的事件的主要内容,如果未能解决你的问题,请参考以下文章