我正在处理日历,以显示一些有关预订的信息。我已经阅读了有关文档,并且已经实现了日历和必要的脚本来获取所需的事件信息,但是我遇到了一个问题,我无法理解该信息是否已从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脚本中出错了?
答案 0 :(得分:1)
当我在评论中写信时,我发现由于一个奇怪的原因,如果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);
?>