如何让全日历显示我的 JSON 源中的信息


How do I get FullCalendar to display information from my JSON feed?

我正在使用FullCalendar(http://arshaw.com/fullcalendar/)设置一个应用程序,该应用程序将允许用户查看客户端计划信息以及通过管理界面计划客户端。

我想使用 MySQL 数据库来填充数组,然后将该数组以 JSON 提要的形式传递给 HTML 页面上的 FullCalendar。 理想情况下,客户端信息将显示在 HTML 页面上。 但是,即使我的 JSON 源被传递,我的 FullCalendar 上也没有事件。

正在传递的示例 JSON 源:

[{"title":"Watson","start":"1333976400","end":"1333980000","allDay":false}]

我对这些语言相当陌生,如果这个错误很简单,我不会感到惊讶。

我将非常感谢有关这些事件出现的任何帮助或见解。 当我手动将数组馈送到 FullCalendar 中时,它确实会显示事件,但到目前为止,我的 JSON 馈送导致没有显示任何信息。

谢谢

供参考:.HTML:

        $(document).ready(function() {      
        $('#calendar').fullCalendar({
            events: '/json-events.php'
        });     
});

.PHP:

        while ($record = mysql_fetch_array($result)) {
        $event_array[] = array(
            'id' => $record['id'],
            'title' => $record['title'],
            'start' => $record['start_date'],
            'end' => $record['end_date'],
            'allDay' => false
        );
    }
echo json_encode($event_array);

所以,对于那些追随我的搜索者来说,问题是我的PHP文件有HTML头部和身体标签。 我是PHP菜鸟,所以我不知道这会导致它不起作用。 为了使FullCalendar显示JSON提要,它必须只有PHP代码,没有HTML。 JSONLint.com 在弄清楚这一点方面非常宝贵。

我设置了一个快速示例,并且没有任何问题可以使其工作:

.PHP:

<?php
$record[0]["title"]="Test 1";
$record[1]["title"]="Test 2";
$record[2]["title"]="Test 3";
$record[0]["start_date"]="1333976400";
$record[1]["start_date"]="1333976401";
$record[2]["start_date"]="1333976402";
$record[0]["end_date"]="1333980000";
$record[1]["end_date"]="1333980001";
$record[2]["end_date"]="1333980002";
$record[0]["id"]="1";
$record[1]["id"]="2";
$record[2]["id"]="3";
for ($i=0; $i<3; $i++) {
    $event_array[] = array(
            'id' => $record[$i]['id'],
            'title' => $record[$i]['title'],
            'start' => $record[$i]['start_date'],
            'end' => $record[$i]['end_date'],
            'allDay' => false
    );

}
echo json_encode($event_array);

exit;
?>

.HTML:

events: '/events.php'

PHP 脚本的示例输出:

[{"id":"1","title":"Test 1","start":"1333976400","end":"1333980000","allDay":false},{"id":"2","title":"Test 2","start":"1333976401","end":"1333980001","allDay":false},{"id":"3","title":"Test 3","start":"1333976402","end":"1333980002","allDay":false}]

因此,鉴于上述内容对我有用,并且与您上面的内容没有什么不同,您可能需要检查PHP脚本是否确实被正确调用。检查 Mozilla Firefox 或 Google Chrome 中的 Javascript 控制台,查看 Fullcalendar 尝试加载事件时是否有任何错误。检查您的 Web 服务器访问/错误日志中是否有任何提及 PHP 脚本的内容。

events: '/json-events.php'

应为任一

events: './json-events.php'

events: 'json-events.php'

让我知道这是否有帮助...

编辑

我还注意到,在您收到的 Json 中,行中没有 id。与在数组中使用的名称相比,数据库中您的 id 命名之间可能存在一些事情。检查一下,看看这是否是正在发生的事情,因为这是传递事件所需的属性之一。

编辑

尝试从 $event_array[] 中删除 [],看看会发生什么...如果这不起作用,那么我就被难住了...不好意思