使用 codeigniter 显示两次完整日历事件

Fullcalendar events displayed twice using codeigniter

我已经将 fullcalendar 与 codeigniter 框架集成在一起。从我的 MySQL 数据库中提取事件工作正常,使用 eventDrop 重新安排事件也是如此。我的问题是所有事件都在我的日历中显示两次。此外,日历中的日期会移动以匹配事件第一个实例的持续时间。我怎样才能摆脱第二个显示器?我怀疑它与 css 或 codeigniter 框架有关,但我无法确定位置或方式。

我已经排除了与数据库相关的问题。即使我像下面示例中那样将事件添加为数组,我也会看到这个问题。

问题描述: 一个空日历正确显示,每个日期都在右上角对齐。如果我添加一个类似下面代码中的事件,我会看到两个事件。第一个在定义的日期正确显示,但在我看到同一事件的第二个实例之后立即显示。此外,网格日期现在向左移动,不再与 table 网格对齐。例如,如果我将事件延长到持续整整一周(如下面的代码所示),星期日日期将显示在 table 网格的中心,然后是事件的第二个实例。

如果我重新安排,我需要 select 第一个事件,但第二个事件移动。

我在重新安排时看到此错误消息: 未捕获的类型错误:无法设置未定义的 属性 'el' fullcalendar.js:3338

我无法让 eventResize 起作用。

代码点火器set-up 我已将完整日历文件放在 asset/fullcalendar 文件夹中,并使用如下辅助函数添加它们:

function asset_url(){
   return base_url().'assets/';
}

/* End of file utility_helper.php */
/* Location: ./application/helpers/utility_helper.php */

这是我的 header 观点:

<?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>

这是我的 body 观点:

<div id="calendar"></div>

编辑:

填充日历 from/to db

从 MySQL 填充日历时,我将 header 中的 "events:" 替换为以下代码:

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":""}]

非常感谢有关此问题的任何帮助。

已解决。我发现日历 table 在 en 事件之后产生了一些额外的东西,这就是为什么所有事件都向左移动的原因。无论如何,我将日历移到了它自己的控制器中,现在它就像一个魅力。