2012-04-10 34 views
6

Tôi đang thiết lập một ứng dụng bằng cách sử dụng FullCalendar (http://arshaw.com/fullcalendar/) sẽ cho phép người dùng xem thông tin lập lịch trình của khách hàng cũng như lập lịch trình khách hàng thông qua giao diện quản lý.Làm thế nào để tôi nhận được FullCalendar hiển thị thông tin từ nguồn cấp dữ liệu JSON của tôi?

Tôi muốn sử dụng cơ sở dữ liệu MySQL để điền một mảng và sau đó chuyển mảng đó dưới dạng nguồn cấp JSON sang FullCalendar trên trang HTML. Lý tưởng nhất, sau đó, thông tin khách hàng sẽ hiển thị trên trang HTML. Tuy nhiên, mặc dù nguồn cấp dữ liệu JSON của tôi đang được chuyển, không có sự kiện nào trên FullCalendar của tôi.

thức ăn chăn nuôi Ví dụ JSON được thông qua:

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

Tôi khá mới đối với các ngôn ngữ và tôi sẽ không ngạc nhiên nếu sai lầm này bật ra được đơn giản.

Tôi sẽ đánh giá sâu sắc mọi trợ giúp hoặc thông tin chi tiết về việc có các sự kiện này hiển thị. Khi tôi nạp một mảng vào FullCalendar theo cách thủ công, nó sẽ hiển thị các sự kiện, nhưng cho đến nay nguồn cấp dữ liệu JSON của tôi đã dẫn đến không có thông tin nào được hiển thị.

Cảm ơn bạn

Để tham khảo: 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); 

Trả lời

7

Vì vậy, vấn đề, đối với những người tìm kiếm theo sau tôi, đó là tệp PHP của tôi có đầu thẻ HTML và thẻ body. Tôi là một noob PHP và vì vậy tôi không biết điều đó sẽ khiến nó không hoạt động. Để FullCalendar hiển thị nguồn cấp dữ liệu JSON, nó phải CHỈ có mã PHP, không có HTML. JSONLint.com là vô giá trong việc tìm ra điều đó.

1
events: '/json-events.php' 

nên một trong hai

events: './json-events.php' 

hoặc

events: 'json-events.php' 

Hãy cho tôi biết nếu điều này giúp ...

EDIT

Tôi cũng nhận thấy rằng trong Json rằng bạn đang nhận được không có id trong dòng. Có thể có điều gì đó đang diễn ra giữa việc đặt tên id của bạn trong DB tương ứng với tên bạn đang sử dụng trong mảng. Kiểm tra nó ra và xem nếu đó là những gì đang xảy ra, bởi vì đó là một trong những thuộc tính được yêu cầu để vượt qua sự kiện này.

EDIT

Cố gắng loại bỏ [] từ $ event_array [] và xem những gì sẽ xảy ra ... Nếu điều đó không làm việc hơn tôi stumpped ...xin lỗi

+0

Có vẻ như cả hai tùy chọn này đều không hoàn toàn làm cho nó hoạt động, mặc dù tôi đánh giá cao nhận xét và có thể sẽ phải khắc phục phần đó cuối cùng. Lịch của tôi vẫn trống, không có sự kiện nào hiển thị khi tôi cố gắng tải. – Reed

+0

@Reed Tôi vừa chỉnh sửa bài đăng của mình –

+0

Tôi hiện đang chuyển ID cũng như vô ích – Reed

5

tôi thiết lập một ví dụ nhanh chóng và không có bất kỳ sự cố khi nhận này để làm việc:

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' 

đầu ra mẫu từ PHP tập lệnh:

[{"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}] 

Vì vậy, cho rằng các công trình trên cho tôi và nó thực sự không khác với những gì bạn có ở trên, bạn có thể cần phải kiểm tra xem tập lệnh PHP có thực sự được gọi đúng không. Kiểm tra bảng điều khiển Javascript trong Mozilla Firefox hoặc Google Chrome để xem có lỗi nào xảy ra khi Fullcalendar cố gắng tải các sự kiện hay không. Kiểm tra truy cập máy chủ web của bạn/nhật ký lỗi cho bất kỳ đề cập đến kịch bản PHP.

Các vấn đề liên quan