FullCalendar:在模态弹出窗口上的ajax调用上显示事件

时间:2017-09-06 16:42:31

标签: javascript jquery ajax fullcalendar

我正在创建一个调度系统,我想向每个用户显示'使用fullCalendar安排。我需要在bootstrap模式中显示日历,并通过AJAX调用使用事件填充日历。

我的问题是当我点击按钮显示模态时,事件没有显示在日历中。

enter image description here

我正在使用Laravel作为我的后端,这里是从数据库中检索计划的代码

public function getTeacherScheduleAJAX($id){
    $schedule = DB::table('schedules AS s')
                ->select('s.lesson_name AS title','s.time_start AS start','s.time_end AS end')
                ->where('s.teacher',$id)
                ->get();
    return response()->json([
        'teacher' => $schedule
    ]);
}

这是我如何通过AJAX调用

进行的
$('.btn-calendar').click(function() {
    $.ajax({
        url : '/teacher-schedule/'+$(this).data('teacherid'),
        type: 'GET',
        success: function(response){
            $('.calendar').fullCalendar('renderEvent', response.teacher, true);
            $('#scheduleModal').modal('show');              
        },
        error: function(err){
            console.log(err)
        }
    })
});

我已在页面加载时初始化

$('.calendar').fullCalendar({
    header : {
        left:   'prev,next today',
        center: 'title',
        right:  'month,agendaWeek,agendaDay'
    },
    defaultView : 'agendaWeek',
    allDaySlot : false,
    eventOverlap: false
});

我从后端收到回复,只是它没有显示在日历中。

来自查询的回复

{
"teacher": [
    {
        "title": "English Lesson Schedule",
        "start": "2017-09-08 10:00:00",
        "end": "2017-09-08 12:00:00"
    },
    {
        "title": "English Lesson Schedule",
        "start": "2017-09-13 07:00:00",
        "end": "2017-09-13 09:00:00"
    }
  ]
}

1 个答案:

答案 0 :(得分:1)

使用

渲染多个事件
$('.calendar').fullCalendar('renderEvents', response.teacher, true); 

而不是

$('.calendar').fullCalendar('renderEvent', response.teacher, true); 

renderEvent适用于单一事件。