[英]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!)。 這只是一個開始。
我的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 "Саша";
阿賈克斯改變他們:
$('.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'); });
事件來源的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; } };
我的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.