Javascript ajax无法使用完整日历
我使用外部拖动事件作为主题分配接口。使用ajax将主题详细信息更新到mysql db,但ajax不起作用。我无法在控制器中获取值。检查了此处的其他问题,但没有找到解决方案。有人能帮我吗Javascript ajax无法使用完整日历,javascript,jquery,ajax,fullcalendar,Javascript,Jquery,Ajax,Fullcalendar,我使用外部拖动事件作为主题分配接口。使用ajax将主题详细信息更新到mysql db,但ajax不起作用。我无法在控制器中获取值。检查了此处的其他问题,但没有找到解决方案。有人能帮我吗 <link href='assets/fullcalendar/fullcalendar.css' rel='stylesheet' /> <link href='assets/fullcalendar/fullcalendar.print.css' rel='stylesheet' media
<link href='assets/fullcalendar/fullcalendar.css' rel='stylesheet' />
<link href='assets/fullcalendar/fullcalendar.print.css' rel='stylesheet' media='print' />
<script src='assets/fullcalendar/lib/moment.min.js'></script>
<script src='assets/js/jquery.js'></script>
<script src='assets/fullcalendar/lib/jquery-ui.custom.min.js'></script>
<script src='assets/fullcalendar/fullcalendar.min.js'> </script>
<script>
$(document).ready(function() {
/* initialize the external events
-----------------------------------------------------------------*/
$('#external-events .fc-event').each(function() {
// create an Event Object (http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)
// it doesn't need to have a start or end
var eventObject = {
title: $.trim($(this).text()) // use the element's text as the event title
};
// store the Event Object in the DOM element so we can get to it later
$(this).data('eventObject', eventObject);
// make the event draggable using jQuery UI
$(this).draggable({
zIndex: 999,
revert: true, // will cause the event to go back to its
revertDuration: 0 // original position after the drag
});
});
/* initialize the calendar
-----------------------------------------------------------------*/
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
editable: true,
droppable: true,
drop: function(date,event) {
// retrieve the dropped element's stored Event Object
var originalEventObject = $(this).data('eventObject');
// we need to copy it, so that multiple events don't have a reference to the same object
var copiedEventObject = $.extend({}, originalEventObject);
// assign it the date that was reported
copiedEventObject.start = date;
// render the event on the calendar
// the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
$('#calendar').fullCalendar('renderEvent', copiedEventObject, true);
// is the "remove after drop" checkbox checked?
if ($('#drop-remove').is(':checked')) {
// if so, remove the element from the "Draggable Events" list
$(this).remove();
}
$.ajax({
url: '/addSchedule',
dataType: 'json',
type: 'post',
data: {event: event},
success: function(response){
console.log('response');
}
});
}
});
});
</script>
$(文档).ready(函数(){
/*初始化外部事件
-----------------------------------------------------------------*/
$('#external events.fc event')。每个(函数(){
//创建一个事件对象(http://arshaw.com/fullcalendar/docs/event_data/Event_Object/)
//它不需要有开始或结束
var eventObject={
title:$.trim($(this).text())//使用元素的文本作为事件标题
};
//将事件对象存储在DOM元素中,以便我们以后可以访问它
$(this).data('eventObject',eventObject);
//使用jQuery UI使事件可拖动
$(此)。可拖动({
zIndex:999,
revert:true,//将导致事件返回其初始状态
revertDuration:0//拖动后的原始位置
});
});
/*初始化日历
-----------------------------------------------------------------*/
$(“#日历”).fullCalendar({
标题:{
左:“上一个,下一个今天”,
中心:'标题',
右图:“月,agendaWeek,agendaDay”
},
是的,
真的,
删除:函数(日期、事件){
//检索已删除元素的存储事件对象
var originalEventObject=$(this.data('eventObject');
//我们需要复制它,这样多个事件就不会引用同一个对象
var copiedEventObject=$.extend({},originalEventObject);
//将其指定为报告的日期
copiedEventObject.start=日期;
//在日历上呈现事件
//最后一个'true'参数确定事件是否“持续”(http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
$(“#calendar”).fullCalendar('renderEvent',copiedEventObject,true);
//是否选中了“删除后删除”复选框?
如果($('#drop remove')。是(':checked')){
//如果是,请从“可拖动事件”列表中删除该元素
$(this.remove();
}
$.ajax({
url:“/addSchedule”,
数据类型:“json”,
键入:“post”,
数据:{event:event},
成功:功能(响应){
console.log('response');
}
});
}
});
});
通过使用@AVM使用的相同程序,我遇到了与@AVM相同的问题
这就是这个问题的解决方案:
var event_title = event.title;
var event_date = event._start.format();
var event_backgroundColor = event.backgroundColor;
var event_borderColor = event.borderColor;
$.ajax({
url: '../php/add_event.php',
type: 'post',
data: {
title: event_title,
date: event_date,
backgroundColor: event_backgroundColor,
borderColor: event_borderColor
},
success: function(response){
alert(response);
},
error: function(){
alert("error");
}
});
注意:
var event_date = event._start.format();
这解决了我的问题,我希望它能解决你的问题
谢谢
Mat
不工作
不是正确的问题陈述。什么不起作用?您遵循了哪些故障排除步骤?@charlietfl在完整日历上发生删除事件时使用ajax保存事件详细信息,但ajax调用失败。我没有得到这些价值观controller@AVM,您是否在控制台中看到错误?另外,如果您将error:function(jqXHR,textStatus,errorshown){console.log(jqXHR)}
()添加到$ajax调用中,您是否看到错误消息?@milz否,也尝试了error:function(),但我在控制台中没有收到错误。通过使用@AVM使用的相同过程,我遇到了与@AVM相同的问题。当代码到达AJAX调用它“停止工作”,或者甚至不考虑它时,我可以说是驴。此外,当事件被放入日历时,日历会冻结。。。。我还尝试将ajax调用放入函数中,并通过所需参数调用它,但没有成功。此外,我在success和error函数中输入的内容也会被执行。谢谢MAtThanks伙计,我会试试这个。