FullCalendar从MySQL拉取日程数据后无法正常显示事件求助
问题原因&修复步骤
1. 核心错误:未调用FullCalendar的回调返回事件数据
你使用的是FullCalendar自定义拉取事件的函数写法,规则要求成功拿到后端数据后,必须调用传入的callback方法把组装好的事件数组传回去,FullCalendar才会触发渲染逻辑。你当前的代码拼完events数组后没有后续操作,日历自然不会显示任何事件。
直接修改JS代码里的success回调逻辑即可:
success: function(data){ var events = []; for (var i=0; i<data.length; i++){ events.push({ title: data[i]['class'], start: data[i]['start_event'], end: data[i]['end_event'], }); } // 新增下面这行,把事件数组传给FullCalendar的回调 callback(events); }
2. 后端返回格式校验
如果改完上面的代码还是不显示,优先排查后端返回是否符合要求:
- 在
loadCalendarEvents.php的echo json_encode($myArray);前新增一行,明确返回类型,避免前端解析JSON异常:
header('Content-Type: application/json');
- 确认
db.php以及当前PHP文件没有额外的输出内容(比如调试用的echo语句、报错提示),否则会污染JSON格式导致前端解析失败 - 检查数据库中
start_event、end_event字段的格式是否符合FullCalendar要求,必须是YYYY-MM-DD或者YYYY-MM-DD HH:mm:ss这类标准ISO时间格式,格式不匹配也会导致事件渲染失败
3. 常规排查项
- 打开浏览器开发者工具,先看控制台有没有JS报错,再看网络请求中
loadCalendarEvents.php的返回是否是正常的JSON数组,有没有404、500类的请求错误 - 确认FullCalendar依赖的jQuery、核心样式和JS文件都已经正确引入,没有加载失败的情况
内容的提问来源于stack exchange,提问作者Soit
相关产品推荐
相关产品推荐

