2015-09-11 2 views
3

У меня есть следующая разметка:Fullcalendar - сохранить события в базе данных

У меня есть экземпляр fullcalendar. При нажатии на день (запуск dayClick -callback) открывается мода загрузочного мода, где пользователь может ввести заголовок и дату начала/окончания. После нажатия на ok эти значения будут добавлены в календарь. Вот код для этого:

function addTitle(){ //having a button onClick="addTitle()" 
      var title = $('#add_date_title').val(); 
      var startdate = $('#add_date_startdate').val(); 
      var enddate = $('#add_date_enddate').val(); 
      var end_split = enddate.split('-'); 
      end_split[2]= parseInt(end_split[2])+parseInt("1"); 
      enddate = end_split[0] + "-" + end_split[1] + "-" + end_split[2]; 
      $('#add_date_title').val(''); 
      $('#add_date_startdate').val(''); 
      $('#add_date_enddate').val(''); 
      $('#add_date_modal').modal('hide'); 

      var myCalendar = $('#calendar'); 
      var myEvent = { 
       title:title, 
       allDay: true, 
       start: startdate, 
       end: enddate 
      }; 
      myCalendar.fullCalendar('renderEvent', myEvent); 
     } 

Итак, событие теперь в календаре. Но когда, например, переключение месяца или перезагрузка страницы, все данные теряются, конечно, потому что они нигде не сохраняются.

Теперь возникает вопрос: как я могу сохранить событие непосредственно в базе данных, а затем загрузить его, поэтому, где я могу принести PHP-код, чтобы сохранить событие в db ... Проблема, m спрашивает, что сайт между добавлением событий никогда не перезагружается, поэтому я не могу проверить GET или POST-параметры или что-то подобное ... Могу ли я сделать это с помощью AJAX? Если да, то как? Потому что я не очень хорошо знаком с AJAX.

ответ

4

Фактически вы можете сохранить события в БД.

  1. Используйте этот ajax после вашего модального триггера.
  2. Получить значение, такие как название, StartDate, дата окончания в модальном и отправить их в следующем АЯКСЕ

    $.ajax({ 
        url: 'add_events.php', 
        data: 'title='+ title+'&start='+ start2 +'&end='+ end2,              
        type: "POST", 
        success: function(json) { 
        $("#getReason").modal('hide'); 
        $('#mydiv').hide(); 
        $('body').removeClass('blockMask');//calendar.fullCalendar('refetchEvents'); 
        $('#calendar').fullCalendar('refetchEvents'); 
        } 
    }); 
    
  3. в add_events.php сохранить детали в дб

  4. В главной странице использовании этот метод для динамического создания источника событий

    function eventSourceCall(){ 
        eventSourceCall = [ 
         { 
          url: 'events.php?status=absent', 
          backgroundColor: 'red', 
          borderColor: 'white', 
          textColor: 'white', 
          rendering: 'background', 
          cache: false 
         } 
    
  5. в events.php выполнить операции выбора и извлечения пар событий ameters как json закодированные объекты и возвращают их.

  6. В функции календаря eventSources: eventSourceCall, добавьте эту строку для выбора источника события.

-1

Используйте эту ссылку для fullcalendar

Click here........

* Выборка данных из базы данных и отображения в fullcalendar *

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