forループが終了した後にページをリダイレクトしようとしましたが、forループの前にコードを実行していてもforループの前に実行しています。 JavaScriptでforループが行われた後にコードを実行して別のページにリダイレクトする方法があるのだろうかと思っています。これは私のコードです。forループの終わりにアクションを実行する
$('#submit').click(function(e) {
e.preventDefault();
var total = $('#total').val();
for (var i = 0; i < total; i++) {
if ($('#check_' + i).is(':checked')) {
// The string to be posted to the submit file
var dataString = 'month=' + month + '&year=' + year + '&patient_id=' + patient_id;
// AJAX code to submit form.
$.ajax({
type: "POST",
url: "pages/views/payroll/bulk_payroll_functions.php",
data: dataString,
cache: false,
success: function(result) {
alert("good");
}
});
}
}
alert("All members payrolls made");
window.location = ("index.php?lang=en&page=view_payroll");
})
$アヤックスは非同期である、それはあなたの外観をブロックしていません。クイックで、簡単で、ダーティな修正は、オプション 'async:false'を追加することです。適切な解決策は、非同期性を扱うこのサンプルをコード化することです。 – Booster2ooo
@ Booster2ooo:それを回答として投稿してみませんか? – Oddthinking
foreach内でajaxを実行する代わりに。 1回の撮影ですべてのデータをアレイとポロとして作成することができます。 – JYoThI