Fullcalendar不显示数据库中的事件

时间:2018-09-15 13:59:35

标签: javascript php jquery pdo 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脚本中出错了?

1 个答案:

答案 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);

?>