使用codeigniter显示两次Fullcalendar事件

时间:2015-03-30 09:09:24

标签: codeigniter fullcalendar

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

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

1 个答案:

答案 0 :(得分:0)

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