[英]Fullcalendar JSON/AJAX
Currently I am working on Fullcalendar v3. 目前,我正在研究Fullcalendar v3。
https://github.com/fullcalendar/fullcalendar/
https://github.com/fullcalendar/fullcalendar/
My events
code to set the events required to display items in the calendar: 我的
events
代码用于设置在日历中显示项目所需的事件:
eventSources: [{
events: function(start, end, timezone, callback) {
$.ajax({
url : 'dispatcher.php',
type : 'post',
dataType: 'json',
data : {
// requires UNIX timestamps
start : start.unix(),
end : end.unix(),
component : 'Rak',
controller: 'Read',
task : 'getCalendarEvents'
},
success : function(doc) {
var events = [];
$(doc).find('event').each(function() {
events.push({
title : $(this).attr('title'),
start : $(this).attr('start'), // will be parsed
end : $(this).attr('end'), // will be parsed
className: $(this).attr('className')
});
});
callback(events);
console.log(doc);
}
});
}
}]
Console.log(doc) : Console.log(doc) :
0: {id: "1", title: "Testtesttest", start: "2019-01-15", end: "2019-01-16", className: "event-azure"} length: 1
0:{id:“ 1”,标题:“ Testtesttest”,开始:“ 2019-01-15”,结束:“ 2019-01-16”,className:“ event-azure”}长度:1
However... item is NOT displayed in the calendar. 但是...项目未显示在日历中。 What am I doing wrong?
我究竟做错了什么? Currently I am clueless.
目前我一无所知。
A JSON format is being sent and should have been used in the events. 正在发送JSON格式,并且应该在事件中使用它。
Thanks a lot for any help! 非常感谢您的帮助!
Hardcoded example which works to show the required format: 硬编码示例可显示所需格式:
events: [
{
title : 'event1',
start : '2010-01-01'
},
{
title : 'event2',
start : '2010-01-05',
end : '2010-01-07'
},
{
title : 'event3',
start : '2010-01-09T12:30:00',
allDay : false // will make the time show
}
]
You can do like below : 您可以执行以下操作:
$('#calendar').fullCalendar({
events: {
url: "<?php echo Yii::getAlias('@COMPANY_URL') . '/shedule/get_event' ?>",
}
});
In the dispatcher.php you have to generate json like below format 在dispatcher.php中,您必须生成如下格式的json
[
{
title: 'Event Title1',
start: '2015-03-17T13:13:55.008',
end: '2015-03-19T13:13:55.008'
},
{
title: 'Event Title2',
start: '2015-03-17T13:13:55-0400',
end: '2015-03-19T13:13:55-0400'
}
]
In my controller did like this : 在我的控制器中是这样的:
public function actionGet_event() {
$events = Shedule::find()->all();
$eventsJson = array();
foreach ($events as $event) {
$url = "https://www.google.co.in/";
$eventsJson[] = array(
'description' => $event->event_desc,
'title' => $event->event_title,
'start' => $event->event_date,
'edit' => $url,
'className' => ["event", "bg-color-greenLight"],
'icon' => 'fa-check',
);
}
echo json_encode($eventsJson);
}
According to your question text console.log(doc)
already produces a valid event array (with valid values and field names as per the fullCalendar documentation of an event object ), so you should not need to create a separate events
variable, or indeed process doc
in any way at all. 根据您的问题文本,
console.log(doc)
已经生成了一个有效的事件数组( 根据事件对象的fullCalendar文档,具有有效的值和字段名),因此您无需创建单独的events
变量,也不必进行处理doc
以任何方式。
Instead you can simply pass the data directly to fullCalendar without doing anything to it: 相反,您可以直接将数据直接传递给fullCalendar,而无需对其进行任何处理:
success : function(doc) {
callback(doc);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.