2014-10-06 69 views
0

我需要通过ajax将开始和结束日期发送到服务器以将它们保存到数据库。我试图通过ajax调用取消选择方法不触发后执行ajax调用。我不确定问题是什么。请帮忙。选择后通过ajax发送fullcalendar开始和结束日期

$('#calendar').fullCalendar({ 
header: { 
    left: 'prev,next today', 
    center: 'title', 
    right: '' 
}, 
defaultDate: '<?php echo date("Y-m-d") ?>', 
defaultView: 'agendaWeek', 
selectable: true, 
selectHelper: true, 
select: function(start, end) { 
    //var title = prompt('Event Title:'); 
    var title = $("#gym_mbr_name").val(); 
    var eventData; 
    if (title) { 
     eventData = { title: title, start: start, end: end }; 
     var calendar_datetime = $('#calendar').fullCalendar('renderEvent', eventData, true); // stick? = true     
    } 

    $('#calendar').fullCalendar('unselect'); 

    $.ajax({                        
     url: '<?php echo BASE_URL; ?>ajax/add_membership_schedule.php', 
     type: 'POST', 
     data: { start: start, end: end }, 
     beforeSend: function(){ }, 
     complete: function(){ } 
    }).done(function(resp){ 
     alert(resp); 
    }); 

}, 
editable: true, 
eventLimit: true, // allow "more" link when too many events 
events: [] 

});

当我尝试提醒resp时,它不会给出任何输出,实际上ajax调用不会触发自身。请帮忙。

回答

1

这似乎为我工作。

请注意,开始和结束都是FCMoments(来自Moments的奇怪生物),并且您希望在将它们用于您的ajax调用之前将它们转换为字符串或其他东西。

而且,尝试使用“成功”,而不是“完成”。

在这里看到一个例子:http://jsfiddle.net/3E8nk/507/

$("#calendar").fullCalendar({ 
    header: { 
     left: "prev,next today", 
     center: "title", 
     right: "month,agendaWeek,agendaDay" 
    }, 
    defaultDate: "2014-06-12", 
    editable: true, 
    selectable: true, 
    selectHelper: true, 
    select: function(a, b) { 
     alert("selected from: " + a.format() + ", to: " + b.format()); 
     $("#calendar").fullCalendar("unselect"); 
     $.ajax({ 
      url: "http://www.google.com", 
      type: "GET", 
      data: { 
       q: "test" 
      }, 
      dataType: "html", 
      success: function(a) { 
       alert("Data: " + a); 
      }, 
      error: function(a, b) { 
       alert("Request: " + JSON.stringify(a)); 
      } 
     }); 
    }, 
    unselect: function() { 
     alert("unseleted"); 
    }, 
    events: [ { 
     title: "All Day Event", 
     start: "2014-06-01" 
    }, { 
     title: "Long Event", 
     start: "2014-06-07", 
     end: "2014-06-10" 
    }, { 
     id: 999, 
     title: "Repeating Event", 
     start: "2014-06-09T16:00:00" 
    }, { 
     id: 999, 
     title: "Repeating Event", 
     start: "2014-06-16T16:00:00" 
    }, { 
     title: "Meeting", 
     start: "2014-06-12T10:30:00", 
     end: "2014-06-12T12:30:00" 
    }, { 
     title: "Lunch", 
     start: "2014-06-12T12:00:00" 
    }, { 
     title: "Birthday Party", 
     start: "2014-06-13T07:00:00" 
    }, { 
     title: "Click for Google", 
     url: "http://google.com/", 
     start: "2014-06-28" 
    } ] 
}); 

如果看着不帮助,然后尝试张贴的PHP生产什么。

+0

非常感谢。我将这些“奇怪的生物”塑造成了字符串,并且它实现了诀窍。 – 2014-10-07 06:37:53

0

在FullCalendar的最新版本中,我们必须在yyyy-mm-dd或相同的格式上捕捉MOMENT DATE格式。所以,对于我这个代码工作:

start = $.fullCalendar.moment(start).format("YYYY-MM-DD HH:mm:ss"); 
end = $.fullCalendar.moment(end).format("YYYY-MM-DD HH:mm:ss"); 
相关问题