Fullcalendar删除事件Ajax / PHP

时间:2015-05-06 10:39:56

标签: php ajax fullcalendar

我正在尝试在我的日历中使用 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):

这是完整的日历事件点击。

  1. Reference 1
  2. Reference 2

3 个答案:

答案 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。