如何在全日历中显示来自 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 请求并为您处理响应。