如何让 FullCalendar 显示来自我的 JSON 提要的信息?

Posted

技术标签:

【中文标题】如何让 FullCalendar 显示来自我的 JSON 提要的信息?【英文标题】:How do I get FullCalendar to display information from my JSON feed? 【发布时间】:2012-04-22 07:38:12 【问题描述】:

我正在使用 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);

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

我设置了一个简单的示例,让它工作没有任何问题:

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 脚本。

【讨论】:

【参考方案3】:
events: '/json-events.php'

应该是

events: './json-events.php'

events: 'json-events.php'

如果这有帮助,请告诉我...

编辑

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

编辑

尝试从 $event_array[] 中删除 [] 看看会发生什么...如果这不起作用,我就很难过...抱歉

【讨论】:

看起来这两个选项都不能让它发挥作用,尽管我很欣赏这个评论并且可能最终不得不修复那个部分。我的日历仍然是空白的,在我尝试加载它时没有显示任何事件。 我现在也在传递 ID,但无济于事 你用的是什么版本的php per phpinfo() 我使用的是 5.2.17 版

以上是关于如何让 FullCalendar 显示来自我的 JSON 提要的信息?的主要内容,如果未能解决你的问题,请参考以下文章

[fullcalendar]让listMonth显示比月份更多的细节

如何使用ajax更改事件对象后刷新fullcalendar v4

如何让 FullCalendar 在移动设备上工作?

无法使FullCalendar事件源以不同颜色显示

FullCalendar v5 通过切换按钮显示/隐藏周末

陈松松:如何利用视频营销让客户自我成交