0

JQuery FullCalendar バージョン 1.5.4 を使用しており、JQuery でイベントを設定したいと考えています。

$.getJSON を使用して、MySQL データベースのデータを取得する php ファイルを呼び出します。

limit 0,1 でクエリを制限すると、すべて正常に動作します。イベントがカレンダーに正常に表示されました。ただし、私のphpがオブジェクトの配列を返すと、エラーが発生します:Uncaught TypeError: Cannot call method 'replace' of null

私のPHPページから返されたJSONデータは次のようになります:

[{"id":1,"title":"Halloween ","start":"2013-02-08 00:00:00","end":"2013-02-08 00:00:00","allDay":true},{"id":2,"title":null,"start":"2013-02-12 00:00:00","end":"2013-02-12 00:00:00","allDay":true},{"id":3,"title":"Sortie Valcartier","start":"2013-02-20 00:00:00","end":"2013-02-20 00:00:00","allDay":true}]

PHP コードは次のようになります。

<?php

//header('content-type: application/json; charset=utf-8');

mysql_connect("localhost","root") or die (" NOPE . [" . mysql_error() . "]");
mysql_select_db("garderie");

$query = "select a.ActiviteID as ActiviteID,a.nom as Nom , cd.datedujour as Jour from activites a 
          inner join calendrieractivite ca 
          on a.activiteid = ca.activiteid
          inner join calendrierdate cd
          on ca.dateid = cd.dateid
        ";
$result = mysql_query($query);

$events = array();

$i = 0;

$year = date('Y'); 
$month = date('m');

while($ligne = mysql_fetch_array($result))
{
    $id = $ligne["ActiviteID"];
    $nom = $ligne["Nom"];


    $e = array(
        'id' => (int)$id,
        'title' => $nom,            
        'start' => $ligne["Jour"],//$start,
        'end' => $ligne["Jour"],
        'allDay' => true
    );
    $events[$i] = $e;

    $i++;        
}


mysql_close();

echo (json_encode($events));
?>

jqueryコードは次のようになります

...
$.getJSON('json_events.php', null, function(data){
    $('#calendar').fullCalendar({
        events: data,
...
4

1 に答える 1

2

PHP側でイベントをフィルタリングし、すべてのイベントにタイトルが付いていることを確認する必要があります。FullCalendarにnullタイトルを渡すと、スクリプトが壊れているようです。

{"id":2,"title":null,"start":"2013-02-12 00:00:00","end":"2013-02-12 00:00:00","allDay":true}
于 2013-02-15T21:27:29.983 に答える