1

フルカレンダーにもっとテキストを表示する必要があります。しかし、問題は、ajax呼び出しを介してmySQLデータベースからjsonデータとしてデータを取得していることです。だから私は来ているデータの正確な長さを知りません。だから私はループで動的にフルカレンダーで毎日のイベントを表示する必要があります。次のコードを試しましたが、出力が得られませんでした。誰でも私を助けることができます。よろしくお願いします

var testJson = ['value1', 'value2'];
$('#full_calendar').fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: true,
    events: [
        for(var i=0;i<2;i++){
            {
                title: ''+testJson [i],
                start: new Date(y, m, 3)
            }
    } ]
});
4

2 に答える 2

2

最初に2つのこと:受け取ったデータの正確な長さを知りたいとき....なぜJSONオブジェクト内でそれらを送信しませんか?

例えば

var test = {"data":[1,2,3,4,5],"size":5}

長さを取得する2番目の方法は、長さフィールドです。すべてのjavascriptオブジェクトには長さフィールドがあります。上記の例では、test.data.lengthは5を返します(test.sizeが行うように)。

配列宣言内で反復を実行することはできないと確信しているので、次の前に配列を作成するだけです。

var events = [];
$(test).each(function(i, obj) {
    events[] = {title: test.data[i], start: new Date(y, m, 3)}
}

jqueryがなければ、次のようになります。

var size = test.data.length;
var events = [];
for(var i =0; i < size; i++) {
    events[] = {title: test.data[i], start: new Date(y, m, 3)}
}

そしてそれをあなたの関数呼び出しに渡します

$('#full_calendar').fullCalendar({
    header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
    },
    editable: true,
    events: events
});
于 2013-01-18T15:46:16.097 に答える
0

データを取得するためにajax呼び出しを使用する場合は、'events: "addres for ajax request"'を記述し、ajaxリクエスト用のファイルを追加する必要があります。たとえば、サイトのルートのパラメータイベントにファイル「json-events.php」を追加します:「json-events.php」。json-events.phpでは、データベースにクエリを実行し、配列内のイベントデータを取得します。ここで、1つのイベント-1つのデータ配列(配列内の配列)。すべてのイベントには、次のようにID、タイトル、開始が必要です。

array( array(
'id' => event id,
'title' => event title,
'start' => YYYY-mm-dd,
'end' => YYYY-mm-dd
))

その後、json形式(json_encode())に変換してエコーします

于 2013-01-22T08:00:38.707 に答える