Fullcalendar删除事件Ajax / PHP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fullcalendar删除事件Ajax / PHP相关的知识,希望对你有一定的参考价值。

我试图在我的日历中使用removeEvent方法并在ajax中发送数据以从我的数据库中删除该事件。

eventClick: function (calEvent, jsEvent, view) {
    $.ajax({
       url: 'calendar/remove_event.php',
       data: 'id=' + event.id,
       type: "POST",
       success: function () {
          $('#calendar').fullCalendar('removeEvents', calEvent._id);
       }
   });
},

和我的PHP:

$id = $_POST['id'];

$ligacao = mysqli_connect("localhost", "root", "", "mydatabase");
if (mysqli_connect_errno()) {
    echo "Can't connect to database: " . mysqli_connect_error();
}

$sql = "delete from events WHERE id= '$id'";
$resultado = mysqli_query($ligacao, $sql);
mysqli_close($ligacao);

当我点击该事件时,它将从日历中删除,但如果我刷新页面它再次出现,因为它没有从数据库中删除。以下是这些方法的文档(removeEvent和eventClick):

这是完整的日历eventClick。

  1. Reference 1
  2. Reference 2
答案

检查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);
}

谢谢

另一答案

你在eventClick函数中犯了一个错误:event没有定义。尝试使用正确的变量名称(calEvent)重新填充它。

此外,在_id中不存在Event object属性,所以在你的removeEventsid重新加入它。

eventClick: function (calEvent, jsEvent, view) {
    $.ajax({
       url: 'calendar/remove_event.php',
       data: 'id=' + calEvent.id,
       type: "POST",
       success: function () {
          $('#calendar').fullCalendar('removeEvents', calEvent.id);
       }
   });
},
另一答案

你必须像这样调用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。

以上是关于Fullcalendar删除事件Ajax / PHP的主要内容,如果未能解决你的问题,请参考以下文章

在Ajax数据库更新后重新呈现fullCalendar中的事件

如何在fullcalendar中删除对象事件源?

Fullcalendar - 通过在触摸设备上拖动删除事件

jQuery fullCalendar删除document.ready上的旧事件

FullCalendar,我如何允许用户编辑/删除事件并将它们从数据库中删除?

FullCalendar ResourceViews 上不显示已删除的外部事件