2
我使用ajaxForm
發送數據到後臺運行的php文件,並且一些js函數將檢查php文件是否正在異步運行。因此,如果出現故障(互聯網/電力不足),我希望我的用戶能夠重試最後一次表單提交。所以我發現了一些阿賈克斯重試函數,best way to retry ajax,但它在相同的ajax請求上,我需要能夠從另一個函數重試我的ajax。它甚至有可能嗎?鑑於我在表單中存儲傳遞的值。 ajaxForm如果需要重新提交
$(document).ready(function(){
$('#form').ajaxForm({
target: '#ajax-response',
success: function(){
\t initAjaxCheck();
}
});
lockCheck();
});
這裏的JS腳本:
function lockCheck(){
$.ajax({
\t type:"POST",
url:"analysisquery.php",
data:{'flag':'lockCheck'},
success:function(result){
\t if (result=="1") { //not finished/unsuccessful
\t \t initAjaxCheck();
\t }
}
});
}
function initAjaxCheck(){
$.ajax({
type:"POST",
url:"analysisquery.php",
data:{'flag':'initProcCheck'},
success:function(data){
\t if (data=="1"){ //just not finished
\t \t spinnerLoad();
\t \t timerCheck=setInterval(function(){
\t \t ajaxCheck(timerCheck);
\t \t },1000);
} else { //unsuccessful
var toRepeat = confirm ("Last try was unsuccessful. Retry?");
if (toRepeat){alert("retry");} else {alert("cancel");}
}
}
});
}
所以,如果我的用戶按重試,我應該有重試我給ajaxForm提交。
我想你可以在每次用戶按重試時調用'initAjaxCheck()'。 Javascript函數可以在函數內調用自己。這被稱爲遞歸函數。 –
@JacobGoh它會將我的表單值傳遞給async php嗎? 'initAjaxCheck'只是一個檢查進程的函數,如果'ajaxForm'的狀態是'success'。 – upicik
對不起,我真的明白你的功能。我知道你的數據如何流動。但是你可以把數據放入一個變量中,並在每個Ajax調用之前檢查數據是否存在。如果重新提交的數據不存在,只需使用'$('#my_input_field')。val()''來獲取表單值1並將值傳遞給ajax調用。希望這可以幫助。 –