【发布时间】:2015-04-21 22:44:28
【问题描述】:
我的显示完整日历的视图代码如下:
<div class="content">
<div id='input'>
<?php echo form_dropdown("package_id", $packagelist, "",'id="packageid"'); ?>
</div>
<div id='calendar'></div>
</div>
<style>
#calendar {
max-width: 900px;
margin: 0 auto;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
$('#packageid').change(function() { //any select change on the dropdown with id country trigger this code
//$('#calendar').fullCalendar ('removeEvents');
var packageid = $('#packageid').val();
alert(packageid);
if(packageid !== null)
{ $('#calendar').fullCalendar({
//var $pid = packageid;
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
displayEventEnd: {
month: true,
basicWeek: true,
"default": true
},
defaultDate: '2014-11-12',
//editable: true,
eventLimit: false, // allow "more" link when too many events
events:
"<?php echo base_url('admin/schedule/scheduledetails/hel/');?>"+"/"+packageid,
});
}
});
});
</script>
当我第一次单击下拉选择时,过滤后的事件会显示在日历上。但是当我单击下拉菜单上的另一个项目时,日历上不会发生任何变化。现在,如果我刷新页面并从下拉列表中选择另一个项目,则会显示带有过滤事件的日历。现在,如果我再次尝试更改下拉选择,日历上不会发生任何变化。我究竟做错了什么。我已经调用了 javascript 在 onchange 函数之后显示日历。
编辑 2:现在我已将代码编辑为如下内容:
<script type="text/javascript">
$(document).ready(function(e) {
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,basicWeek,basicDay'
},
displayEventEnd: {
month: true,
basicWeek: true,
"default": true
},
defaultDate: '2015-11-12',
//editable: true,
eventLimit: false, // allow "more" link when too many events
events: "<?php echo base_url('admin/schedule/scheduledetails/json/')?>",
cache : false,
});
});
</script>
此脚本最初用于显示包含所有事件的日历。
现在为过滤事件完成了以下脚本:
<script>
$(document).ready(function() {
$('#packageid').change(function() { //any select change on the dropdown with id country trigger this code
$('#calendar').fullCalendar ('removeEvents');
var packageid = $('#packageid').val();
// alert(packageid);
$('#calendar').fullCalendar('removeEvents');
$('#calendar').fullCalendar('addEventSource', '<?php echo base_url();?>admin/schedule/scheduledetails/hel/'+packageid);
//$('#calendar').fullCalendar('removeEvents');
});
});
</script>
正在发生的问题是 .日历最初加载了整个数据。当我单击过滤的下拉按钮时,会发生过滤。如果我单击完整日历上的上一个或下一个按钮,那么它也可以在没有重复事件的情况下工作。 现在,如果我从数据库中选择下一个事件,则过滤再次完美发生。但是当我单击上一个或下一个按钮时,上一个下拉选择加上当前下拉选择的事件会显示在全日历视图上。为什么会这样?我用过 removeEvents 。为什么它不起作用?
【问题讨论】:
标签: javascript php fullcalendar