【发布时间】:2011-01-07 00:09:25
【问题描述】:
我有一个使用 PHP 构建的日历,上面有事件。
我正在使用 jQuery UI 来启用拖放以移动事件。 .droppable() 函数附加了一个回调函数,该函数使用新信息更新数据库。但是日历需要刷新,以便从新的数据库值中读取。
你能用 jQuery 强制刷新页面吗?或者有更好的方法吗?
【问题讨论】:
标签: php jquery database calendar
我有一个使用 PHP 构建的日历,上面有事件。
我正在使用 jQuery UI 来启用拖放以移动事件。 .droppable() 函数附加了一个回调函数,该函数使用新信息更新数据库。但是日历需要刷新,以便从新的数据库值中读取。
你能用 jQuery 强制刷新页面吗?或者有更好的方法吗?
【问题讨论】:
标签: php jquery database calendar
也许这就是你想要的?
$("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");
});
}
});
【讨论】:
如果您在不刷新的情况下修改数据库,这意味着您在途中的某个地方发出了 HTTPXmlRequest……为什么不看看您是否可以让该请求返回更改,并在浏览器中更新它?
...因为如果您想要刷新页面,您应该使用<form> 提交,不是吗?既然你没有这样做,我觉得你想要一些 Sweet Rich-UI Ajax Action,而 Sweet Rich-UI Ajax Action 原则的根源是“不刷新”。
【讨论】:
location.reload(true) 是您要查找的呼叫。
$('.selector').droppable({
drop: function(event, ui) { location.reload(true); }
});
【讨论】:
您可以对 php 函数进行 ajax 调用,该函数在更新数据库后重新构建日历。
.droppable(function(){
$('#calendar').load('scriptname.php', {variable1: 'var1', etc...});
});
【讨论】: