-1

私はこのようなphpでMySqlからデータを取得しています=>

while ($birthday_row = $birthday_r->fetch_row()){
    $birthday_array[] = array(
    'title' => $birthday_row[0],
    'start' => $birthday_row[1] . "-" . $birthday_row[2]
    );
}

JavaScript:

var json_obj_birthday = <?php if (isset($birthday_array)){echo json_encode($birthday_array);} ?>;
var json_obj_birthday_len = json_obj_birthday.length;
var d = new Date();
var event = [];
for (var i=0;i<json_obj_birthday_len;i++){ // adding manually year
    json_obj_birthday[i].start = d.getFullYear() + "-" + json_obj_birthday[i].start;
    event = {
        'title' : json_obj_birthday[i].title,
        'start' : json_obj_birthday[i].start
    };
}

上記のJavaScriptコードのevent配列は、最初のデータに対してのみ保存されます。これは、に対してのみ保存されます。json_obj_birthday[0]すべての情報をevent配列に保存するにはどうすればよいですか?ありがとう

PS。eventその配列を完全な情報でjsonエンコードしたい

アップデート

今、私はこのように試しました

var events = <?php if (isset($birthday_array)){echo json_encode($birthday_array);} ?>;
        var d = new Date();
        for (var i = 0; i < events.length; i++){
            events[i].start = d.getFullYear() + "-" + events[i].start;
        }

欲望の結果も得られません

2回目の更新

eventこの変数をjQueryの完全なカレンダーに渡したいので、私がやろうとしていることが必要です。これがscript=>です。

jQuery("#calendar").fullCalendar({ // initialize full calendar
        header: {
            left: 'prev,next today',
            center: 'title',
            right: 'month,basicWeek,basicDay'
        },
        events: [
            event
        ] // here was my fault , I must to have `events: event,`
    });

あなたのコードを結んだ後、カレンダーへの情報は挿入されません、それは私が意味することは機能しません

PS。誰かが私がしていることとその理由にもっと深く興味があるなら、plsは私の前の質問も見て、毎年jQueryフルカレンダーに誕生日イベントを追加します

4

4 に答える 4

1

PHP:

while ($birthday_row = $birthday_r->fetch_row()){
    $birthday_array[] = array(
    'title' => $birthday_row[0],
    'start' => $birthday_row[1] . "-" . $birthday_row[2]
    );
}

JavaScript:

var json_obj_birthday = <?php if (isset($birthday_array)){echo json_encode($birthday_array);} ?>;
var json_obj_birthday_len = json_obj_birthday.length;
var d = new Date();
var event = [];
for (var i=0;i<json_obj_birthday_len;i++){ // adding manually year
    json_obj_birthday[i].start = d.getFullYear() + "-" + json_obj_birthday[i].start;
    event.push({
        'title' : json_obj_birthday[i].title,
        'start' : json_obj_birthday[i].start
    });
}
于 2012-09-06T19:57:18.063 に答える
1

jsonをに直接割り当ててから、エントリeventsを修正してみませんか?start

var events = <?php echo isset($birthday_array) ? json_encode($birthday_array) : "[]" ?>;
var d = new Date();
for (var i = 0; i < events.length; i++){
    events[i].start = d.getFullYear() + "-" + events[i].start;
}

PHPに句を追加して、$birthday_array設定されていない場合、javascriptが構文エラーではなく空の配列を受け取るようにしたことに注意してください。


この行は、に格納されている配列を単一のjavascriptオブジェクトにevent = { ... } 置き換えているため、コードは機能しません。event

于 2012-09-06T19:52:48.643 に答える
0
var json_obj_birthday = <?php if (isset($birthday_array)){echo json_encode($birthday_array);} ?>;
var json_obj_birthday_len = json_obj_birthday.length;
var d = new Date();
var event = [];
for (var i=0;i<json_obj_birthday_len;i++){ // adding manually year
    json_obj_birthday[i].start = d.getFullYear() + "-" + json_obj_birthday[i].start;
  var  event2 = {
        'title' : json_obj_birthday[i].title,
        'start' : json_obj_birthday[i].start
    };
event.push(event2);
}

javascriptでこれを試してください

于 2012-09-06T19:55:49.670 に答える
0

ここでのあなたのアプローチ全体は間違っていると思います。これが私がそれを行う方法です(さらに、それは警告/通知を表示しません):

<?php

    $birthday_array = array();

    while ($birthday_row = $birthday_r->fetch_row()){
        $birthday_array[] = array(
            'title' => $birthday_row[0],
            'start' => $birthday_row[1] . "-" . $birthday_row[2],
        );
    }

?><script type="text/javascript">

    var json_obj_birthday = <?php echo json_encode($birthday_array); ?>;
    var json_obj_birthday_len = json_obj_birthday.length;
    var d = new Date();
    var event = [];

    for (var i=0; i < json_obj_birthday_len; i++){ // adding manually year
        json_obj_birthday[i].start = d.getFullYear() + "-" + json_obj_birthday[i].start;
        event.push({
            'title' : json_obj_birthday[i].title,
            'start' : json_obj_birthday[i].start
        });
    }

</script>

ここでの私のアドバイスは; 常に変数を宣言します...架空の変数に単に追加/インクリメントなどすることは決してありません。

最後に、一部の処理をクライアント側のjavascriptにオフロードしても問題はありませんが、PHP/サーバー側に配置することを検討することをお勧めします。ほんの小さなメモで、それほど重要ではありません。

于 2012-09-06T19:58:00.107 に答える