第一次尝试无法从完整日历中删除事件
Posted
技术标签:
【中文标题】第一次尝试无法从完整日历中删除事件【英文标题】:Unable to delete an event from full calendar in the first attempt 【发布时间】:2016-03-19 04:47:07 【问题描述】:我有一个 Bootstrap 模式插件,我试图从中删除在 FullCalendar 中创建的事件。在我第一次尝试删除期间,该事件从日历视图中消失,但 mysql 条目没有被删除。我注意到的原因是calEvent.id
在我最初的删除尝试中没有得到值,但在第二次尝试中calEvent.id
有一个值,我可以成功删除事件。我想知道为什么calEvent.id
在第一次尝试时无法获取事件 ID。使用我在第一次尝试时注意到的警告框,我得到一个结果“未定义”,我猜这是因为没有值即将到来calEvent.id
。请在下面找到我的脚本。
$('#event_delete').on('click', function ()
$('#calendar').fullCalendar('removeEvents', calEvent.id);
$.ajax(
data: "&id=" + calEvent.id,
type: "POST",
url: "http://localhost/book/js/delete_events.php"
);
alert (calEvent.id);
CloseModalBox();
);
--------------delete_events.php-----------
<?php
try
$bdd = new PDO('mysql:host=localhost;dbname=fullcalendar', 'root', '');
catch(Exception $e)
exit('Unable to connect to database.');
$id = $_POST['id'];
$sql = "DELETE from evenement WHERE id=".$id;
$q = $bdd->prepare($sql);
$q->execute();
?>
【问题讨论】:
在delete_events.php
中也显示PHP代码
对不起,我现在添加了 RiggsFolly。谢谢
【参考方案1】:
您可以调用 $('#calendar').fullCalendar('refetchEvents'),而不是重新加载整个页面。它将从您的数据库中获取所有事件并重新呈现它们。
【讨论】:
【参考方案2】:数据应该像这样传递:-
$('#event_delete').on('click', function ()
$('#calendar').fullCalendar('removeEvents', calEvent.id);
$.ajax(
data: id: calEvent.id,
type: "POST",
url: "http://localhost/book/js/delete_events.php"
);
alert (calEvent.id);
CloseModalBox();
);
【讨论】:
感谢 RiggsFolly 的快速回复。我注意到,calEvent.id
即使在更改后仍然没有获得价值。一种解决方法(不确定它是否是推荐的方法)是刷新整个页面,然后我可以获得 calEvent.id
的值
刚刚注意到一件事。只有当我倾向于删除刚创建的项目时才会发生这种情况。如果该项目之前已创建(在上一页刷新之前),则 calEvent.id
具有该项目的值。
我不知道你是从哪里得到 calEvent.id 的,但是当一个新事件被添加到日历中时,这听起来像是设置的方式有问题
嘿 RiggsFolly,我想我在代码中犯了一个错误。我试图查找仅在 mySQL 中生成的 calEvent.id。在创建事件时,mySQL 正在创建一个 id,并且每次刷新 php 页面时,完整的日历都会收到该 id(我有一个事件在页面加载期间从 mySQL 加载数据。)。为了解决我当前的问题,我通过在成功提交到 mySQL DB 期间刷新 php 页面来解决我的问题,这将强制每次从 mySQL DB 获取数据。你在你最后的陈述中放弃了帮助我弄清楚的线索。谢了哥们 !为此 +1。以上是关于第一次尝试无法从完整日历中删除事件的主要内容,如果未能解决你的问题,请参考以下文章
带有 EKEvents 的 PromiseKit - 询问用户访问日历事件的权限