我有一個使用PHP構建的日曆,其上有事件。如何使用jQuery拖放來刷新PHP數據庫日曆?
我使用jQuery UI來啓用拖放來移動事件。 .droppable()函數附帶一個回調函數,用新信息更新數據庫。但日曆需要刷新,以便從新的數據庫值中讀取日曆。
你可以強制使用jQuery刷新頁面嗎?還是有更好的方法來做到這一點?
我有一個使用PHP構建的日曆,其上有事件。如何使用jQuery拖放來刷新PHP數據庫日曆?
我使用jQuery UI來啓用拖放來移動事件。 .droppable()函數附帶一個回調函數,用新信息更新數據庫。但日曆需要刷新,以便從新的數據庫值中讀取日曆。
你可以強制使用jQuery刷新頁面嗎?還是有更好的方法來做到這一點?
也許這就是你想要的?
$("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");
});
}
});
您可以對更新數據庫後重新生成日曆的php函數進行ajax調用。
.droppable(function(){
$('#calendar').load('scriptname.php', {variable1: 'var1', etc...});
});
using .load()? – rhodesjason 2010-01-19 20:58:03
是的,您可以使用.load回調在日曆div加載後執行其他操作。 – jay 2010-01-19 21:03:59
location.reload(true)是您正在查找的呼叫。
$('.selector').droppable({
drop: function(event, ui) { location.reload(true); }
});
如果你修改而無需刷新數據庫,這意味着你正在做的HTTPXmlRequest沿途某處......爲什麼不找出來,如果你能有一個請求返回的變化,並更新了它-browser?
...因爲如果你想刷新頁面,你應該使用<form>
提交,否?因爲你沒有,所以我覺得你想要一些Sweet Rich-UI Ajax Action,而Sweet Rich-UI Ajax Action的原則是「不刷新」。
這是正確的9倍,但在這種情況下,我使用jQuery來驅動拖放,然後我只想在當時刷新一個頁面,只是爲了顯示數據庫中的變化,即拖放創建。這有點罕見,但我知道有一種方法可以在不刷新頁面的情況下進行,如其他答案所示。謝謝! (儘管我更喜歡Hot Rich-UI Ajax Action。) – rhodesjason 2010-01-20 20:52:47
這很接近,但我不想要提醒。我會玩更多的可選項。謝謝。 – rhodesjason 2010-01-20 20:53:53
警報只是向用戶顯示ajax已完成的一種方法。有很多非阻礙性的方法可以在某些事情完成時提醒用戶。我會建議在ajax調用之前在日曆單元格內轉儲一個ajax spinner,一旦完成,它將被替換爲已加載的內容。 – 2010-01-20 22:45:54