我正在尝试在我的日历中使用 removeEvent 方法,并在ajax中发送数据以从我的数据库中删除该事件。
List<IVolumeImage> volumeImagesExceptVolumeNames = VolumeImages.Where(o => !volumeNames.Exists(v => v.VolumeName == o.VolumeName)).ToList();
和我的PHP:
eventClick: function (calEvent, jsEvent, view) {
$.ajax({
url: 'calendar/remove_event.php',
data: 'id=' + event.id,
type: "POST",
success: function () {
$('#calendar').fullCalendar('removeEvents', calEvent._id);
}
});
},
当我点击该活动时,它会从日历中删除,但如果我再次刷新页面,则因为它没有从数据库中删除。 以下是这些方法的文档(removeEvent和eventClick):
这是完整的日历事件点击。
答案 0 :(得分:0)
检查php代码..
也许是因为这一行
$sql = "delete from events WHERE id= '$id'";
只需更改为
$sql = "delete from events WHERE id='".$id."'";
并检查ajax,您可以使用chrome(网络选项卡)中的开发人员工具查看网络日志或将此代码添加到您的ajax并在控制台上查看
error: function(jqXHR, textStatus, errorThrown){
console.log(jqXHR);
console.log(textStatus);
console.log(errorThrown);
}
由于
答案 1 :(得分:0)
您在eventClick
函数中犯了一个错误:event
未定义。尝试使用正确的变量名称(calEvent
)重新加入。
此外,Event object中不存在_id
属性,因此在removeEvents
中使用id
重新设置它。
eventClick: function (calEvent, jsEvent, view) {
$.ajax({
url: 'calendar/remove_event.php',
data: 'id=' + calEvent.id,
type: "POST",
success: function () {
$('#calendar').fullCalendar('removeEvents', calEvent.id);
}
});
},
答案 2 :(得分:0)
你必须像这样调用id。
eventClick: function( event, jsEvent, view ) { }
而不是。
eventClick: function (calEvent, jsEvent, view) { }
然后您可以使用事件的属性访问元素ID。
event.id
在这个简短的解释之后,最终的代码将是这样的。
eventClick: function( event, jsEvent, view ) {
$.ajax({
url: 'calendar/remove_event.php',
data: 'id=' + event.id,
type: "POST",
success: function () {
$('#calendar').fullCalendar('removeEvents', calEvent._id);
}
});
},
使用此修复程序可能你的php中的删除方法工作正常。
参考文献:http://fullcalendar.io/docs/mouse/eventClick/
Thnks。