2012-03-09 3 views
0

私はFullCalendarを正しく設定していますが、jsonソースを読み込もうとしています。私はURLを介して直接アクセスする際FullCalendar - JSONソースは動作しませんが、JSONデータを直接使用します

マイJSONソースは正常に動作し、私は画面上に出力されたデータをコピーして、FullCalendarイベントにこれを直接入れた場合、イベントが表示されます。

私のjsonソースのURLにイベントを設定するだけでは機能しません。 Firebugs NETパネルを使用して呼び出しを検査し、JSONソースを正しく探していて、正しいデータをフェッチしていますが、単にカレンダーに表示していません。

私は

任意のアイデア(これはオプションであるにもかかわらず)スタート(UNIXおよびYYYY-MM-DD形式の両方)と終了(trueに)ID、タイトル、終日を設定していますか?ストレート作業には問題を設定していないイベントに^^^というの挿入

{"id":1,"title":"Test Event","start":1331309234,"allDay":true} 

:JSONソースによって与えられた

<script> 
$(document).ready(function() { 
    $('#calendar').fullCalendar({ 
     events: "eventsjson" // links to a controller in my symfony2 project. accessing cirectly gives correct json output 
    }); 
}); 
</script> 

データ。

+0

コードとJSON(ライブデモがさらに優れている)を見ずに手伝ってはいけません。 –

+1

'' eventsjson "'は実際のシステムの同じドメイン( 'http:// sameDomain.com/feed.html')上のページに有効な擬似コードであると仮定していますか? – JAAulde

+0

ブラウザコンソールを使用してajaxリクエストを確認し、ステータスとデータが返されます(ある場合) – charlietfl

答えて

2

問題は、JSONオブジェクト内の1つだけのエントリが存在する場合、[]括弧を含まないようにPHPの自然な動作である(タイムスタンプはPHPの時間()関数によって生成されました)。

秒を追加すると、[]の括弧がPHPによって追加され、FullCalendarプラグインが正しく機能します。

私はこれがFullCalendarの欠陥であると信じており、著者にバグとして提出しています。

1

解決策が見つかるまで、私はこの問題を何時間も働いていました。

私のプロジェクトでは、私はCakePHP v3とFullCalendar v2で作業していますが、どちらもうまく構成されています。アレイモードでイベントを設定するとうまくいきましたが、URLモードでは機能しませんでした。多くの同じ問題:FullCalendarはスクリプト(私のコントローラで私のアクション)を取得し、JSONデータを取るが、誰のイベントもカレンダーに表示されます。

私が構築JSON応答が(私はhttp://jsonlint.com/で検証)有効ですが、誰でもイベントはFullCalendarで表示されていません。

これは動作しませんでした私の応答だった:

{ 
    "events": [ 
     { 
      "id": "1", 
      "title": "event1", 
      "start": 1435336659, 
      "end": 1436200659, 
      "allday": false 
     }, 
     { 
      "id": "2", 
      "title": "event2", 
      "start": "2015-07-06 11:37:39", 
      "allday": false 
     } 
    ] 
} 

そして、私は(私のコントローラで)このコードでこの応答を構築:

$this->set('events', $event_array); 
$this->set('_serialize', ['events']); 

問題は、私は設定方法でした変数をJSONビューに追加します。解決策は次のとおりです。

$this->set(['events' => $event_array, '_serialize' => 'events']); 

あなたはケーキ\ビュー\ JsonViewクラスでこれを確認することができます。このコードは、次のJSONレスポンスを構築:

すべてです
[ 
    { 
     "id": "1", 
     "title": "event1", 
     "start": 1435336961, 
     "end": 1436200961, 
     "allday": false 
    }, 
    { 
     "id": "2", 
     "title": "event2", 
     "start": "2015-07-06 11:42:41", 
     "allday": false 
    } 
] 

...問題は、外側の「{}」とFullCalendarのために有効ではありません「イベント」キーワードです。

私はあなたのためにこの作品を希望します。

関連する問題