这让我疯狂,因为我似乎无法找到我的代码或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);
}
模型
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);
JSON示例
[{"id":1,"title":"title 1","start":"2013-09-08 00:00:00","end":"2013-09-08 10:00:00","allDay":""},{"id":1,"title":"title 2","start":"2013-09-17 00:00:00","end":"2013-09-17 10:00:00","allDay":""}]
我已经尝试过的事情:
这是有趣的部分..该软件包附带的演示适合我。但是,如果我将我的jquery代码指向特定的json url,我仍然没有得到任何事件。日历本身变得很好。
我尝试了更多的东西:使用演示HTML页面,其中JSON由codeigniter提供并且它可以工作..我开始认为与其他脚本存在冲突或者我可能需要在标题中加载我的scrips而不是页脚?
答案 0 :(得分:2)
如果我检查了标题,我本可以保存自己2天......我们的设计师在css中添加了以下内容:
div {
position:relative;
overflow:hidden
}
删除后,它只是工作正常。不能相信这很简单。
答案 1 :(得分:1)
为我工作,试试吧!
<强>控制器强>
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);
}
查看强>
<script type="text/javascript">
$(document).ready(function() {
$('#calendar').fullCalendar({
events:<?php echo $json ?>,
header:
{
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek'
}
});
});
</script>
答案 2 :(得分:0)
尝试将您的事件参考从“events”更改为“eventSources”:
$('#calendar').fullCalendar({
editable: true,
eventSources: [ { url: '/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();
}
});