2
私はajaxForm
を使用して、バックグラウンドで実行されるphpファイルにデータを送信し、いくつかのjs関数はPHPファイルが非同期で実行されているかどうかをチェックします。だから何らかの失敗(インターネット/電気が消えた)の場合、私はユーザに最後のフォーム提出を再試行させたい。だから私はいくつかのAjaxリトライ機能をこのように見つけた、best way to retry ajaxしかし、それは同じAjaxリクエストにある、私は別の機能から自分のajaxを再試行することができる必要があります。それも可能ですか?渡された値をフォームに格納していることを考えれば、だから、ajaxForm必要に応じて再送信
$(document).ready(function(){
$('#form').ajaxForm({
target: '#ajax-response',
success: function(){
\t initAjaxCheck();
}
});
lockCheck();
});
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の提出を再試行する必要があります。ここでは
はjsのスクリプトがあります。
私はあなたが単に 'initAjaxCheck()'を呼び出すことができると思います。 Javascript関数は、関数内で自身を呼び出すことができます。これは再帰関数と呼ばれます。 –
@JacobGohはフォームの値をasync phpに渡しますか? 'initAjaxCheck'は、' ajaxForm'の状態が 'success'であれば、プロセスをチェックする関数です。 – upicik
申し訳ありませんが、私は本当にあなたの機能を理解しています。私はあなたのデータがどのように流れるか知っています。データを変数に入れ、すべてのajax呼び出しの前にデータが存在するかどうかを確認することができます。再送信時にデータがない場合は、 '$( '#my_input_field').val()'などの形式を使用してフォームの値1を取得し、その値をajax呼び出しに渡します。お役に立てれば。 –