如何在使用 jQuery 拖放后刷新 PHP 数据库日历?

发布于 2024-08-18 01:57:08 字数 167 浏览 3 评论 0原文

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

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

你能用 jQuery 强制页面刷新吗?或者有更好的方法来做到这一点吗?

I have a calendar built using PHP, with events on it.

I'm using jQuery UI to enable drag and drop to move the events around. The .droppable() function has a callback function attached that updates the database with the new information. But the calendar needs to refresh so that it reads from the new database values.

Can you force a page refresh with jQuery? Or is there a better way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

回忆躺在深渊里 2024-08-25 01:57:08

也许这就是你想要的?

$("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");
        });
    }
});

Maybe this is what you want?

$("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");
        });
    }
});
秋千易 2024-08-25 01:57:08

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

.droppable(function(){

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

});

You could make an ajax call to a php function that re-builds the calendar after updating the database.

.droppable(function(){

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

});
天荒地未老 2024-08-25 01:57:08

location.reload(true) 是您要查找的调用。

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

location.reload(true) is the call you're looking for.

$('.selector').droppable({
   drop: function(event, ui) { location.reload(true); }
});
似狗非友 2024-08-25 01:57:08

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

...因为如果您想要刷新页面,您应该使用

提交,不是吗?既然你没有,这让我觉得你想要一些 Sweet Rich-UI Ajax Action,而 Sweet Rich-UI Ajax Action 原则的根源是“无刷新”。

If you're modifying the database without refreshing, it means you're making an HTTPXmlRequest somewhere along the way... why not find out if you can have that request return the changes, and update it in-browser?

... because if you wanted a page refresh, you should have used a <form> submission, no? And since you didn't, it makes me feel like you want some Sweet Rich-UI Ajax Action, and at the root of the principles of Sweet Rich-UI Ajax Action is "no refresh."

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文