6

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

3 回答 3

7

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

于 2012-04-18T18:12:50.393 回答
5

我建立了一个简单的例子,让它工作没有任何问题:

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

于 2012-04-11T08:28:33.723 回答
1
events: '/json-events.php'

应该是

events: './json-events.php'

或者

events: 'json-events.php'

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

编辑

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

编辑

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

于 2012-04-10T00:48:39.763 回答