如何在全日历中显示来自 api 的获取事件?
How To show fetch events from api in fullcalendar?
代码:
"use strict";
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay,listWeek'
},
defaultDate: new Date(),
editable: true,
droppable: true,
drop: function() {
if ($('#drop-remove').is(':checked')) {
$(this).remove();
}
},
eventLimit: true,
events: function (start, end, timezone, callback) {
$.ajax({
type: "GET",
url: "https://www.example.com/calender_api",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (doc) {
var events = [];
var obj = doc;
$(obj).each(function () {
events.push({
title: $(this).attr('title'),
start: $(this).attr('start')
});
});
if (callback) callback(events);
}
});
}
});
calender_api.php:
[{start:"2019-03-06",title:"Conference"},{start:"2019-03-13",title:"Recruiting And Staffing"}]
我创建了一个看起来不错的活动日历,问题是如何显示来自 calender_api
的活动,正如我上面提到的?请帮助我。
谢谢
看来您几乎是逐行复制并粘贴了 fullCalendar 文档示例 (https://fullcalendar.io/docs/events-function) 中的代码,而没有尝试理解它。它清楚地提到那里的代码旨在将数据从 XML 响应转换为 fullCalendar 所需的 JS 对象格式。你这里没有那个问题,因为你的PHP已经返回了JSON,可以不用转换直接解析
你可以
a) 稍微更改一下您的 ajax 代码,使其直接 returns 将数据直接发送到 fullCalendar:
success: function (doc) {
callback(doc);
}
或
b) 仅用 URL 替换整个内容,因为它已经符合此方法中显示的 fullCalendar 规范:https://fullcalendar.io/docs/events-json-feed
events: "https://www.example.com/calender_api"
执行此操作时,fullCalendar 将负责启动 AJAX 请求并为您处理响应。
代码:
"use strict";
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay,listWeek'
},
defaultDate: new Date(),
editable: true,
droppable: true,
drop: function() {
if ($('#drop-remove').is(':checked')) {
$(this).remove();
}
},
eventLimit: true,
events: function (start, end, timezone, callback) {
$.ajax({
type: "GET",
url: "https://www.example.com/calender_api",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (doc) {
var events = [];
var obj = doc;
$(obj).each(function () {
events.push({
title: $(this).attr('title'),
start: $(this).attr('start')
});
});
if (callback) callback(events);
}
});
}
});
calender_api.php:
[{start:"2019-03-06",title:"Conference"},{start:"2019-03-13",title:"Recruiting And Staffing"}]
我创建了一个看起来不错的活动日历,问题是如何显示来自 calender_api
的活动,正如我上面提到的?请帮助我。
谢谢
看来您几乎是逐行复制并粘贴了 fullCalendar 文档示例 (https://fullcalendar.io/docs/events-function) 中的代码,而没有尝试理解它。它清楚地提到那里的代码旨在将数据从 XML 响应转换为 fullCalendar 所需的 JS 对象格式。你这里没有那个问题,因为你的PHP已经返回了JSON,可以不用转换直接解析
你可以
a) 稍微更改一下您的 ajax 代码,使其直接 returns 将数据直接发送到 fullCalendar:
success: function (doc) {
callback(doc);
}
或
b) 仅用 URL 替换整个内容,因为它已经符合此方法中显示的 fullCalendar 规范:https://fullcalendar.io/docs/events-json-feed
events: "https://www.example.com/calender_api"
执行此操作时,fullCalendar 将负责启动 AJAX 请求并为您处理响应。