2012-04-10 58 views
6

我使用FullCalendar(http://arshaw.com/fullcalendar/)设置了一个应用程序,该应用程序将允许用户查看客户端计划信息以及通过管理界面安排客户端。如何让FullCalendar显示来自我的JSON供稿的信息?

我想使用MySQL数据库来填充数组,然后将该数组以JSON提要的形式传递给HTML页上的FullCalendar。理想情况下,客户端信息将显示在HTML页面上。然而,即使我的JSON feed正在传递,我的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); 

回答

7

所以对于那些追随我的搜索者来说,问题是我的PHP文件有HTML头部和身体标记。我是一个PHP noob,所以我不知道这会导致它不工作。为了让FullCalendar显示JSON供稿,它必须只有PHP代码,不能有HTML。 JSONLint.com在计算这一点方面是无价的。

1
events: '/json-events.php' 

应该是

events: './json-events.php' 

events: 'json-events.php' 

让我知道如果这能帮助...

编辑

我也注意到,在JSON,你收到没有在该行没有ID。数据库中您的id的名称与您在数组中使用的名称比较之间可能会发生一些变化。检查一下,看看是否是这样,因为这是通过事件所需的属性之一。

编辑

尝试从$ event_array [],看看会发生什么...如果不工作比我stumpped去掉[] ...对不起

+0

看起来这两个选项都不能完全实现它的功能,尽管我很欣赏这个评论,并且可能最终不得不修复那部分。我的日历仍然是空白的,没有事件显示,因为我尝试加载它。 – Reed 2012-04-10 14:19:07

+0

@Reed我刚刚编辑我的帖子 – 2012-04-10 18:15:16

+0

我现在通过ID以及但无济于事 – Reed 2012-04-10 19:20:55

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:从PHP输出

events: '/events.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脚本。

相关问题