我已将fullcalendar与codeigniter框架集成在一起。从MySQL数据库中提取事件的工作正常,使用eventDrop重新安排事件也是如此。我的问题是所有事件都在我的日历中显示两次。此外,日历中的日期将被移动以匹配事件的第一个实例的持续时间。如何摆脱第二次显示?我怀疑它与css或codeigniter框架有关,但我无法确定何处或如何。
我排除了与数据库相关的问题。即使我将事件添加为数组,就像我在下面的示例中所做的那样,我也看到了这个问题。
问题描述: 正确显示空日历,每个日期在右上角对齐。如果我添加类似下面代码中的事件,我会看到两个事件。第一个在定义的日期正确显示,但在我看到同一事件的第二个实例后立即显示。此外,网格日期现在向左移动,不再与表格网格对齐。例如,如果我将事件延长一整周(如下面的代码中所示),则星期日日期显示在表格网格的中心,然后是事件的第二个实例。
如果我重新安排,我需要选择第一个事件,但第二个事件会移动。
我重新安排时看到此错误消息: 未捕获的TypeError:无法设置属性' el'未定义的fullcalendar.js:3338
我无法让eventResize工作。
Codeigniter设置 我已将fullcalendar文件放在asset / fullcalendar文件夹中,并使用辅助函数添加它们,如下所示:
function asset_url(){
return base_url().'assets/';
}
/* End of file utility_helper.php */
/* Location: ./application/helpers/utility_helper.php */
以下是我的标题视图:
<?php echo doctype("html5"); ?>
<head>
<?php echo meta('Content-type', 'application/json; charset=utf-8', 'equiv');?>
<!-- Full calendar stylesheets -->
<?php echo link_tag('assets/fullcalendar/fullcalendar.css'); ?>
<?php echo link_tag('assets/fullcalendar/fullcalendar.print.css','stylesheet','text/css','','print'); ?>
<!-- fullcalendar js-files -->
<script src='<?php echo asset_url();?>fullcalendar/lib/jquery.min.js'></script>
<script src='<?php echo asset_url();?>fullcalendar/lib/moment.min.js'></script>
<script src='<?php echo asset_url();?>fullcalendar/fullcalendar.js'></script>
<script type="text/javascript">
$(document).ready(function() {
$('#calendar').fullCalendar({
allDayDefault: false,
editable : true,
resizeable : true,
events: [
{
title : 'event1',
start : '2015-03-01',
end : '2015-03-08'
},
],
});
});
</script>
</head>
以下是我的正文视图:
<div id="calendar"></div>
修改
在日历中填充日历
从MySQL填充日历时,我会替换&#34;事件:&#34;在标题中包含以下代码:
events: "<?php echo site_url().'/project/show_events';?>",
控制器功能
function show_events() {
//populate the calendar from db
$this->load->model('calendar');
$data['json'] = $this->calendar->getCalendar();
$this->load->view('calendar', $data);
}
模型calendar.php
<?php
Class Calendar extends CI_Model
{
function __construct()
{
parent::__construct();
}
function getCalendar()
{
$sql = "SELECT PROJ_PRODUCTIONORDER.id as id, CONCAT(PROJ_PRODUCTIONORDER.ordernumber, ' ', PROJ_CLIENTLIST.clientname) as title, PROJ_PRODUCTIONORDER.start as start, PROJ_PRODUCTIONORDER.end as endd
FROM PROJ_PRODUCTIONORDER, PROJ_CLIENTLIST
WHERE PROJ_PRODUCTIONORDER.clientid=PROJ_CLIENTLIST.id
ORDER BY PROJ_PRODUCTIONORDER.id";
$result = $this->db->query($sql);
return $result;
}
查看calendar.php
<?php
$jsonevents = array();
foreach($json->result() as $entry)
{
$jsonevents[] = array(
'id' => $entry->id,
'title' => $entry->title,
'start' => $entry->start,
'end' => $entry->endd,
'allDay' => '',
);
}
echo json_encode($jsonevents);
calendar.php回应了以下几个事件:
[{"id":"1","title":"ordernumber1 clientname1","start":"2015-03-01","end":"2015-03-08","allDay":""},{"id":"2","title":"ordernumber2 clientname2","start":"2015-04-01","end":"2014-04-03","allDay":""}]
非常感谢有关此问题的任何帮助。
答案 0 :(得分:0)
解决。我发现日历表在en事件之后产生了一些额外的事情,这就是为什么所有事件都被移到了左边。无论如何,我将日历移动到它自己的控制器中,现在它就像一个魅力。