2015-04-12 3 views
0

Я работаю над FullCalendar, чтобы создать планировщик. Я не могу добавить никаких событий в базу данных mysql, потому что получаю сообщение об ошибке:Bootstrap FullCalendar Uncaught TypeError: undefined не является функцией

Uncaught TypeError: undefined не является функцией.

Chrome выдвигает на первый план следующую строку:

var start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss"); 

Любые идеи, почему? У меня есть fullCalendar v 2.1.1. правильно указано.

Вот полный сценарий.

//do all the calendar stuff for adding a new appt. 
var date = new Date(); 
var d = date.getDate(); 
var m = date.getMonth(); 
var y = date.getFullYear(); 

var calendar = $("#calendar").fullCalendar({ 
    header: { 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    }, 
    editable: true, 
    slotDuration: '00:10:00', 
    defaultView: 'agendaWeek', 
    draggable: true, 
    events: 'json_appointments.php', 
    eventRender: function(event, element, view) { 
     if (event.allDay == true) { 
     event.allDay = true; 
     } else { 
     event.allDay = false; 
     } 
    }, 
    eventClick: function(event, jsEvent, view) { 
     $('#modalTitle').html(event.title); 
     $('#modalBody').html(event.reason + ' ' + event.pre_notes); 
     $('#fullCalModal').modal(); 
    }, 
    loading: function(bool) { 
     if (bool) $('#loading').show(); 
     else $('#loading').hide(); 
    }, 
    selectable: true, 
    selectHelper: true, 
    select: function(start, end, allDay) { 
     var title = prompt('Event Title:'); 
     if (title) { 
      var start = $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss"); 
      var end = $.fullCalendar.formatDate(end, "yyyy-MM-dd HH:mm:ss"); 
      $.ajax({ 
       url: 'ajax_add_appt.php', 
       data: 'title='+ title+'&start='+ start +'&end='+ end, 
       type: "POST", 
       success: function(json) { 
       alert('Added Successfully'); 
       } 
      }); 
      calendar.fullCalendar('renderEvent', 
       { 
       title: title, 
       start: start, 
       end: end, 
       allDay: allDay 
       }, 
      true // make the event "stick" 
      ); 
     } 

     calendar.fullCalendar('unselect'); 
    }, 
    eventDrop: function(event, delta) { 
     var start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss"); 
     var end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss"); 
     $.ajax({ 
      url: '', 
      data: 'title='+ event.title+'&start='+ start +'&end='+ end +'&id='+ event.id , 
      type: "POST", 
      success: function(json) { 
       alert("Updated Successfully"); 
      } 
     }); 
    }, 
    eventResize: function(event) { 
     var start = $.fullCalendar.formatDate(event.start, "yyyy-MM-dd HH:mm:ss"); 
     var end = $.fullCalendar.formatDate(event.end, "yyyy-MM-dd HH:mm:ss"); 
     $.ajax({ 
     url: 'http://localhost:8888/fullcalendar/update_events.php', 
     data: 'title='+ event.title+'&start='+ start +'&end='+ end +'&id='+ event.id , 
     type: "POST", 
     success: function(json) { 
     alert("Updated Successfully"); 
     } 
     }); 

    } 
}); 
+1

Возможный дубликат: http://stackoverflow.com/questions/24729721/fullcalender-formatdate-not-working? Проверьте ответ Тифы на возможную причину и исправить –

+0

Скорее всего, вам не хватает [momentjs] (http://momentjs.com/). Вы должны добавить это в свой проект, поскольку Fullcalendar теперь использует Moment.js для форматирования дат. –

ответ

1

Спасибо за комментарии. У меня была ссылка на moment.js.

Я просто должен был изменить свой сценарий, как это:

var start=moment(start).format('YYYY-MM-DDTHH:mm:ssZ'); 
var end=moment(end).format('YYYY-MM-DDTHH:mm:ssZ'); 

... на основе другой линии связи стека, упомянутый Alvaro. Спасибо.

Смежные вопросы