我试图在我的日历中使用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。
检查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属性,所以在你的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);
}
});
},
你必须像这样调用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。