1

キーと値のペアがシンボルに変換される理由が理解できず、ajaxGET呼び出しで次のようになります。

GET /admin_schedule/get_schedule_db/?0=%5B&1=o&2=b&3=j&4=e&5=c&6=t&7=+&8=O&9=b&10=j&11=e&12=c&13=t&14=%5D&15=%22&16=%26&17=t&18=e&19=a&20=c

それ以外の:

GET /admin_schedule/get_schedule_db/?teacherArray[]=128&teacherArray[]=134...

私のコード:

var eventss = ''; 
$("input[type='checkbox'][name='teacher']").each( function() { 
    if(this.checked) {
        eventss += "&teacherArray[]=" + $(this).attr("value");
    }
});
events1.data += eventss;

フルカレンダーイベントのajaxソース:

var events1 = {
    url: '/admin_schedule/get_schedule_db/',
    type: 'GET',
    data: {sch_teacher_id: (sch_teacher_id) ? sch_teacher_id : $('.teacher').val() },
    success: function (response) {
        return response;
    }
};

そして、イベントでフルカレンダーをフェッチします

eventSources: [ 
            events1,
            events2,
            events3 
        ],
4

2 に答える 2

3

Object#toString文字列をオブジェクトと連結することは、常に.を返すため、ほとんどの場合良い考えではありません"[object Object]"。オブジェクトをオーバーライドtoStringしない限り、オブジェクトは連結される前に、この文字列として文字列にキャストされます(つまり、コンテンツが失われます)。さらに、結果の文字列は有効なクエリ文字列ではありません。

それ以外の

eventss += "&teacherArray[]=" + $(this).attr("value");
...
events1.data += eventss;

で空teacherArrayを作成してみdataてください

events1.data.teacherArray.push($(this).attr("value"));

また、使用を検討してください$("#my-form").serialize()

于 2012-12-05T05:16:18.613 に答える
0

この問題を解決しました!(ヤン・ドヴォルザークさん、コメントありがとうございます!)。

1.変数は配列になりました:

var sch_teacher_id = new Array("<?php echo $sch_teacher_id; ?>");

2. ループの前に毎回配列を空にします。

$('.teacher').change(function (event) {
    events1.data.sch_teacher_id = [];
    events2.data.sch_teacher_id = [];
    events3.data.sch_teacher_id = [];

    if($(this).val()) { 

        $("input[type='checkbox'][name='teacher']").each( function() {  
            if(this.checked) {                          
                events1.data.sch_teacher_id.push($(this).attr("value"));     
                events2.data.sch_teacher_id.push($(this).attr("value"));          
                events3.data.sch_teacher_id.push($(this).attr("value"));
            }   
        });  

    }
    $calendar.fullCalendar('refetchEvents');
}); 
于 2012-12-06T10:34:59.977 に答える