【问题标题】: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。谢谢

标签: jquery mysql twitter-bootstrap fullcalendar


【解决方案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。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多