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 の head タグと body タグが含まれていることでした。私はPHP初心者なので、それが機能しない原因になるとは知りませんでした。FullCalendar で JSON フィードを表示するには、HTML ではなく PHP コードのみを含める必要があります。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 がイベントを読み込もうとしたときにスローされるエラーがあるかどうかを確認します。PHP スクリプトに関する記述がないか、Web サーバーのアクセス/エラー ログを確認してください。

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

どちらかである必要があります

events: './json-events.php'

また

events: 'json-events.php'

これが役立つかどうか教えてください...

編集

また、受信しているJsonには、行にIDがないことに気付きました。DB内のIDの名前と、配列で使用している名前との間に何かが起こっている可能性があります。それをチェックして、それが起こっているかどうかを確認してください。これは、イベントを渡すために必要なプロパティの1つだからです。

編集

$ event_array []から[]を削除して、何が起こるかを確認してください...それがうまくいかない場合は、困惑しています...ごめんなさい

于 2012-04-10T00:48:39.763 に答える