【问题标题】:How to refresh a PHP database calendar after using jQuery drag and drop?使用 jQuery 拖放后如何刷新 PHP 数据库日历?
【发布时间】:2011-01-07 00:09:25
【问题描述】:

我有一个使用 PHP 构建的日历,上面有事件。

我正在使用 jQuery UI 来启用拖放以移动事件。 .droppable() 函数附加了一个回调函数,该函数使用新信息更新数据库。但是日历需要刷新,以便从新的数据库值中读取。

你能用 jQuery 强制刷新页面吗?或者有更好的方法吗?

【问题讨论】:

    标签: php jquery database calendar


    【解决方案1】:

    也许这就是你想要的?

    $("div.myCalendarCell").droppable({
        addClasses: false,
        accept: "div.myEvents",
        activeClass: "active",
        hoverClass: "hover",
        drop: function(event,ui) {  
            var myFormData = $(this).find("form.myEventFormData").serialize();
            $(this).load("php/myEventManager.php",{"myFormData":myFormData},function(e){
                alert("updated");
            });
        }
    });
    

    【讨论】:

    • 这很接近,但我不想要警报。我会更多地使用那些可丢弃的选项。谢谢。
    • 警报只是向用户显示 ajax 已完成的一种方式。当某事完成时,有许多非阻碍性的方式来提醒用户。我建议在 ajax 调用之前在日历单元中转储一个 ajax 微调器,一旦完成,它将被加载的内容替换。
    【解决方案2】:

    如果您在不刷新的情况下修改数据库,这意味着您在途中的某个地方发出了 HTTPXmlRequest……为什么不看看您是否可以让该请求返回更改,并在浏览器中更新它?

    ...因为如果您想要刷新页面,您应该使用<form> 提交,不是吗?既然你没有这样做,我觉得你想要一些 Sweet Rich-UI Ajax Action,而 Sweet Rich-UI Ajax Action 原则的根源是“不刷新”。

    【讨论】:

    • 10 次中有 9 次这是正确的,但在这种情况下,我使用 jQuery 来驱动拖放,然后我只想在那一刻刷新页面,只是为了显示从拖放创建的数据库。这有点罕见,但我知道有一种方法可以在不刷新页面的情况下做到这一点,正如这里的其他答案所见。谢谢! (不过,我更喜欢 Hot Rich-UI Ajax Action。)
    【解决方案3】:

    location.reload(true) 是您要查找的呼叫。

    $('.selector').droppable({
       drop: function(event, ui) { location.reload(true); }
    });
    

    【讨论】:

      【解决方案4】:

      您可以对 php 函数进行 ajax 调用,该函数在更新数据库后重新构建日历。

      .droppable(function(){
      
        $('#calendar').load('scriptname.php', {variable1: 'var1', etc...});
      
      });
      

      【讨论】:

      • 是的,你可以在日历 div 加载后使用 .load 回调做其他事情。
      猜你喜欢
      • 1970-01-01
      • 2021-08-14
      • 2015-10-07
      • 2011-06-03
      • 1970-01-01
      • 2014-06-17
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多