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不显示数据库中的事件的主要内容,如果未能解决你的问题,请参考以下文章

FullCalendar活动弹出按钮单击“不工作”

FullCalendar 事件弹出按钮单击不起作用

fullCalendar 中的拖放事件不起作用

加载 fullcalendar.io 事件时出错 - 未显示数据

Fullcalendar 不显示事件 MVC

FullCalendar ResourceViews 上不显示已删除的外部事件