完整日历不显示数据库中的事件



我正在制作日历以显示有关预订的一些信息。我已经阅读了有关的文档,并且我已经实现了日历和必要的脚本来获取我需要的事件信息,但是我遇到了一个问题,我无法理解信息是否从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 代码以在使用 ajax 加载数据时不使用从 fullcalendar 传递的$_GET参数来提供响应。

这是代码,我希望它对有相同问题的其他人有用。

<?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);
?>

最新更新