Jquery Fullcalendar不显示任何事件(后端Codeigniter)

Jquery Fullcalendar不显示任何事件(后端Codeigniter),jquery,codeigniter,fullcalendar,Jquery,Codeigniter,Fullcalendar,这让我抓狂,因为我似乎找不到我的代码或json有任何问题。我已经花了很多时间试图解决这个问题,并阅读了关于StackOverflow的答案 我有以下几段代码: Jquery $(document).ready(function() { $('#calendar').fullCalendar({ editable: true, events: "/action/json/calender", allDayDefault: false,

这让我抓狂,因为我似乎找不到我的代码或json有任何问题。我已经花了很多时间试图解决这个问题,并阅读了关于StackOverflow的答案

我有以下几段代码:

Jquery

$(document).ready(function() {
$('#calendar').fullCalendar({

        editable: true,

        events: "/action/json/calender",
        allDayDefault: false,
        eventDrop: function(event, delta) {
            alert(event.title + ' was moved ' + delta + ' days\n' +
                '(should probably update your database)');
        },

        loading: function(bool) {
            if (bool) $('#loading').show();
            else $('#loading').hide();
        }

    });
});
控制器

public function calender()
{
    $this->load->model('json_model');
    $data['json'] = $this->json_model->getCalender();
    $this->load->view('json/calender', $data);
}
public function show_calendar() 
{
    $query = $this->db->query("SELECT * FROM events ORDER BY start ASC");

    $jsonevents = array();

    foreach($query->result() as $entry)
    {
        $jsonevents[] = array(
            'id' => $entry->id,
            'title' => $entry->title,
            'start' => $entry->start,
            'end' => $entry->end,
            'url' => $entry->url,
            'allDay' => $entry->allDay
        );
    }

    $data['json'] = json_encode($jsonevents);

    $this->load->view('calendar',$data); 
}
型号

function getCalender()
{
    $sql = "SELECT id, title, start, end, user_id FROM gc_calender";
    $result = $this->db->query($sql);

    return $result;
}
查看

<?php
$jsonevents = array();

foreach($json->result() as $entry)
{
$jsonevents[] = array(
    'id' => 1,
    'title' => $entry->title,
    'start' => $entry->start,
    'end' => $entry->end,
    'allDay' => ''
);

}

 echo json_encode($jsonevents); 
<script type="text/javascript">

$(document).ready(function() {

    $('#calendar').fullCalendar({
        events:<?php echo $json ?>,

        header: 
        {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek'
        }          
    });

});
</script>
我已经尝试过的:

  • 用Javascript本身硬编码它
  • PHP头,所以它被输出为json
  • FullCalendar的旧版本
这是有趣的部分。。该软件包附带的演示对我很有用。然而,如果我将jquery代码指向特定的json url,我仍然不会得到任何事件。日历本身被渲染得很好


我还做了一些尝试:使用演示HTML页面,使用codeigniter提供的JSON,效果很好。。我开始认为可能与其他脚本冲突,或者我需要在页眉而不是页脚中加载我的脚本?

尝试将事件引用从“事件”更改为“事件源”:


如果我也检查了标题,我可以节省自己2天的时间。。。我们的设计师在css中添加了以下内容:

div {
position:relative;
overflow:hidden
}

去掉这个之后,它就可以正常工作了。真不敢相信这么简单。

它对我有用,试试看

控制器

public function calender()
{
    $this->load->model('json_model');
    $data['json'] = $this->json_model->getCalender();
    $this->load->view('json/calender', $data);
}
public function show_calendar() 
{
    $query = $this->db->query("SELECT * FROM events ORDER BY start ASC");

    $jsonevents = array();

    foreach($query->result() as $entry)
    {
        $jsonevents[] = array(
            'id' => $entry->id,
            'title' => $entry->title,
            'start' => $entry->start,
            'end' => $entry->end,
            'url' => $entry->url,
            'allDay' => $entry->allDay
        );
    }

    $data['json'] = json_encode($jsonevents);

    $this->load->view('calendar',$data); 
}
查看

<?php
$jsonevents = array();

foreach($json->result() as $entry)
{
$jsonevents[] = array(
    'id' => 1,
    'title' => $entry->title,
    'start' => $entry->start,
    'end' => $entry->end,
    'allDay' => ''
);

}

 echo json_encode($jsonevents); 
<script type="text/javascript">

$(document).ready(function() {

    $('#calendar').fullCalendar({
        events:<?php echo $json ?>,

        header: 
        {
            left: 'prev,next today',
            center: 'title',
            right: 'month,agendaWeek'
        }          
    });

});
</script>

$(文档).ready(函数(){
$(“#日历”).fullCalendar({
活动:,
标题:
{
左:“上一个,下一个今天”,
中心:'标题',
右图:“月,agendaWeek”
}          
});
});

控制台中是否没有错误?我认为您的JavaScript这一行
事件:“/action/json/calender”
中存在问题,请注意:在使用CI时,请在您的模型中使用它的活动记录(它更好、更安全:),在任何
foreach()
之前,确保检查所需变量中是否有任何数据(您的案例:$json)如果没有结果,您可以使您的模型返回FALSE(或NULL),因此在控制器中,您可以使用简单的
if()
语句来检查变量是否为所需的“格式”(数组/对象)。实际上,控制台中现在显示了一个错误,这在以前是没有的。在将jquery稍微修改为我问题中的jquery之后,它开始出现。我会把它加起来问这个问题。至于活动唱片,我不是一个大风扇,就像我自己写他们。其他的事情我都知道,但这只是一个测试用例!糟糕的是,我拼错了url的一部分,这就是它显示404错误的原因。更正后,没有控制台错误,也没有工作日历。您正在设置json头吗?在视图
$this->output->set_头('Content-Type:application/json;charset=utf-8')作为第一行。也请打开chromes element inspector点击网络标签,看看那里发生了什么。ajax的响应都很好吗?是的,我以前试过,没有什么区别。请注意,该示例不使用标题。不幸的是,没有任何更改。。但是,如果使用eventSources而不是event,下载时附带的演示也会起作用。我尝试一次删除一个脚本,看看它是否会干扰任何东西,但也没有运气。您是否碰巧在公共URL上有此功能,或者这一切都是在本地开发的?它位于Web服务器上,但正在网站的后端部分使用。我可以用日历复制一份,我会在完成后回复。我知道有一些html/css错误。