我正在尝试使用数据库中的事件填充日历,但我遇到了一些问题。
这是处理全日历事件的代码:
<script type="text/javascript">$(document).ready(function() {
// page is now ready, initialize the calendar...
$.ajax({
type: "GET",
data_type: "json"
url: "appointments/show"
success: function(data){
alert(data);
$('#calendar').fullCalendar({
events:
[
{
title : 'Reserved',
start : '2013-10-02 12:30:00',
end : '2013-10-02 13:00:00',
allDay : false // will make the time show
}
],
dayClick: function(date, allDay, jsEvent, view) {
var todayDate = new Date();
if(date <= todayDate){
alert('You cannot book on selected time');
}
else{
if (allDay) {
alert('Clicked on the entire day: ' + date);
}else{
var day = date.getDate();
var month = date.getMonth();
var year = date.getFullYear();
var hour = date.getHours();
var minutes = date.getMinutes();
if(minutes == 30){
minutes = 00;
hour += 1;
}
else{
minutes = 30;
}
//alert(day + ' ' + month + ' ' + year + ' ' + hour + ' ' + minutes);
var dateEnd = new Date();
dateEnd.setDate(day);
dateEnd.setMonth(month);
dateEnd.setFullYear(year);
dateEnd.setHours(hour);
dateEnd.setMinutes(minutes);
alert('Next slot: ' + dateEnd);
$('#calendar').fullCalendar('renderEvent', { title: 'YOUR TITLE', start: date, end: dateEnd,allDay: false, backgroundColor: '#378006' }, true );
$.ajax({
type: "POST",
url: "/create",
data: {
appointment_date: date,
doctor_id: '1',
user_id: '1'
}
});
}
}
}
});
});
});</script>
控制器中的代码:
def show
@appointment = Appointment.find(:all);
respond_to do |format|
format.json { render json: @appointment }
flash[:success] = "Welcome!"
end
end
我正在关注这个线程来完成fullcalendar js: fetching more events with ajax
问题是日历根本不显示。如果我在开头删除该 ajax 调用,日历会正常显示,并且会显示 2013-10-02 的事件。用户还可以使用 POST 请求创建新事件。那行得通。
任何想法可能是什么问题?
谢谢你。