実現したいこと
Ajaxの処理を思い通りの順番で実行したい。
前提
生徒の成績を登録するプログラムを書いています。
4行から20行程度の表で、参加生徒の生徒コードと生徒名が表示されています。
そのFormに各生徒の点数を入力し、一括入力しようとしています。
下にあるコードで一括処理をしようとすると、登録はできるのですが、順番が
バラバラに登録されてしまいます。再表示するときに入力した順番で表示したい
と考えていますがうまくいきません。
Ajaxは「非同期処理」であることはわかっているのですが、これを同期的な処理
にする方法がわかりません。
該当のソースコード
``
function doRecordAdd(gyoCount){
for (let i = 0; i < gyoCount; i++){ if($('#record' + i).val() != ""){ $.ajax({ type: "POST", url: "../code/record/RecordAdd.php", data: {"testId":$('#testId').val(), "seitoId":$('#seitoId' + i).val(), "record":$('#record' + i).val()}, dataType: 'text', }).done(function(response) { if(response != 0){ alert('追加登録されました。'); }else{ alert('追加登録できませんでした。'); } }).fail(function(response_j) { alert('参加申込できませんでした。管理者にご連絡下さい。T'); // 通信失敗時の処理 }); }else{ alert("データが有りません"); } }
}
``
試したこと
「promis/differd」や「async/await」などの方法でajaxを同期処理できることは
わかっていて、特に今回の場合は「async/await」がいいんじゃないかと考え、いろいろ
いじってみましたがうまくいきませんでした。
いろいろな資料を読んでも理解できず、当てずっぽうに async と await を組み込んで
みましたが当然のことながらうまくいきませんでした。
よろしくご指導ください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答3件
あなたの回答
tips
プレビュー