簡體   English   中英

顯示多個eventSources的事件取決於Fullcalendar中復選框的選擇

[英]Showing events for multiple eventSources depend on checkboxes' choice in Fullcalendar

我將像Solgema Fullcalendar功能- http://plone.org/products/solgema.fullcalendar/releases/2.1.2 (選擇並顯示出復選框選擇事件)

我的事件源看起來像:

eventSources: [
            ...
            {
                url: '/admin_schedule/get_schedule_db_recurring_events_on_daysweek/',//"<?echo $data_path?>",
                type: 'GET',
                data: {sch_teacher_id: sch_teacher_id},
                backgroundColor: 'red',
            }

        ],

我想實現復選框,以便教師“過濾”事件,並在復選框中選中。 首先,只需選中一個復選框(以后再制作foreach封面)

<div class="box">
        <?php
        $js = 'onClick="rerender_schedule()"';
        echo form_checkbox('teacher', 'vika', FALSE, $js)." Vika";  
        ?>
</div>

我認為,通過此代碼,fullcalendar必須調用rerender_schedule()函數,該函數使用vika的sch_teacher_id過濾來自eventSource的數據

如果有人可以幫助rerender_schedule()函數,我會很感激,因為ajax不好。

編輯:(感謝tocallaghan!)。 這只是一個開始。

  1. 我的3個復選框:

      $data = array( 'name' => 'teacher', 'class' => 'teacher', 'id' => 'teacher', 'value' => '128', 'checked' => FALSE, 'style' => 'margin:10px', ); echo form_checkbox($data); echo "Вика"; $data = array( 'name' => 'teacher', 'class' => 'teacher', 'id' => 'teacher2', 'value' => '111', 'checked' => FALSE, 'style' => 'margin:10px', ); echo form_checkbox($data); echo "Вася"; $data = array( 'name' => 'teacher', 'class' => 'teacher', 'id' => 'teacher3', 'value' => '1', 'checked' => FALSE, 'style' => 'margin:10px', ); echo form_checkbox($data); echo "Саша"; 
  2. 阿賈克斯改變他們:

     $('.teacher').change(function (event) { events1.data.sch_teacher_id = $(this).val(); events2.data.sch_teacher_id = $(this).val(); events3.data.sch_teacher_id = $(this).val(); $calendar.fullCalendar('refetchEvents'); }); 
  3. 事件來源的vars:

     var events1 = { url: 'url1', type: 'GET', data: {sch_teacher_id: $('#teacher').val() }, success: function (response) { return response; } }; var events2 = { url: 'url2', type: 'GET', data: {sch_teacher_id: $('#teacher').val() }, backgroundColor: 'green', success: function (response) { return response; } }; var events3 = { url: 'url3', type: 'GET', data: { sch_teacher_id: $('#teacher').val() }, backgroundColor: 'red', success: function (response) { return response; } }; 
  4. 我的eventSources呼叫

     eventSources: [ events1, events2, events3 ], 

您需要refetchEvents ,但是在調用之前要小心更新數據參數(否則它將保留初始設置的值)

$('.CheckBoxClass').change(function () {
    events.data.sch_teacher_id = $(this).val();
    $('#calendar').fullCalendar('refetchEvents');
});

編輯:聲明事件對象的代碼:

var events = {
    url: 'url',
    type: 'GET',
    data: { Id: $('#divId').val() },
    success: function (response) {
        return response;
    }
};

$('#calendar').fullCalendar({
    events: events
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM