Discuz Uchome ajaxpost小技巧
更新時間:2011年01月04日 23:29:35 作者:
discuz的ajaxpost功能有點強大,但缺點也很明顯,如果ajaxpost提交一個FORM,那么返回的時候只能顯示showmessage的內(nèi)容,而不會主動跳轉(zhuǎn),因此這里就有一個小技巧 了。
比如默認submit按鈕這樣操作:onclick="ajaxpost('formid')";之類的,我們可以先這樣。。
onclick="$('__formid').innerText='';ajaxpost('formid');checkPostResult();";
含義其實很簡單,先把ajaxpost提示信息所在的div內(nèi)容清空。然后提交。最后,根據(jù)返回值來判斷。。
function checkPostResult(){
var cid = setInterval(function(){
if( $('__formid').innerText == 'success'){
alert('提交成功');
location.href='xxxxx.php';
clearInterval(cid);
}
},1000);
}
這個處理也很簡單,為什么是用setInterval和clearInterval,主要是由于ajax是異步操作,如果不用setInterval方法 ,那么在ajaxpost結(jié)束的時候,其實提示信息還沒有append到提示信息所在的ID里,所以用setInterval方法先延遲然后循環(huán)處理最后再結(jié)束提示。。。
clearInterval用的不太對,但短時間內(nèi)想不到更好的。先這樣臨時解決嘍。
onclick="$('__formid').innerText='';ajaxpost('formid');checkPostResult();";
含義其實很簡單,先把ajaxpost提示信息所在的div內(nèi)容清空。然后提交。最后,根據(jù)返回值來判斷。。
復制代碼 代碼如下:
function checkPostResult(){
var cid = setInterval(function(){
if( $('__formid').innerText == 'success'){
alert('提交成功');
location.href='xxxxx.php';
clearInterval(cid);
}
},1000);
}
這個處理也很簡單,為什么是用setInterval和clearInterval,主要是由于ajax是異步操作,如果不用setInterval方法 ,那么在ajaxpost結(jié)束的時候,其實提示信息還沒有append到提示信息所在的ID里,所以用setInterval方法先延遲然后循環(huán)處理最后再結(jié)束提示。。。
clearInterval用的不太對,但短時間內(nèi)想不到更好的。先這樣臨時解決嘍。
相關文章
PHP實現(xiàn)多服務器session共享之NFS共享的方法
PHP實現(xiàn)多服務器session共享之NFS共享的方法...2007-03-03如何在thinkphp中使用windows計劃任務定時執(zhí)行php文件
這篇文章主要介紹了如何在thinkphp中使用windows計劃任務定時執(zhí)行php文件,對定時執(zhí)行感興趣的同學,可以參考下2021-04-04PHP mongodb操作類定義與用法示例【適合mongodb2.x和mongodb3.x】
這篇文章主要介紹了PHP mongodb操作類定義與用法,結(jié)合實例形式分析了php封裝的適合mongodb2.x和mongodb3.x版本MongoDB數(shù)據(jù)庫連接、增刪改查、錯誤處理等操作定義與使用方法,需要的朋友可以參考下2018-06-06