2012-04-10 56 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腳本。

相關問題