データベースに2つのテーブルがあり、送信ボタンを押すとトレーダーテーブルに新しいトレーダーを挿入し、laravel 5.2
を使用してポストajaxを使用して別のポストajaxを実行しますこの場合の問題は、私が最初のAjaxの前に2番目のAjaxを実行するサブミットを押すときです。なぜですか?次のajaxを実行する前にajaxを実行します
$(document).ready(function(e) {
$('#invoiceForm').validate({
//rules: itemRules,
errorPlacement: function (element) {
return false;
},
submitHandler: function (event) {
//event.preventDefault();
// $('#selectedTraderName').valid();
var allItems = [];
$('tr.inputsItem').each(function() {
rowData = $(this).children('td').find('.form-control').map(function() {
return $(this).val();
}).get();
rowData.push(parseInt($(this).children('td').find('strong#autoTotal').text().trim()));
if($('select[id=selectedTraderName]').val() <= lastTraderID) {
rowData.push($('select[id=selectedTraderName]').val());
}
else{
newTrader = [];
newTrader.push($('#name').val());
newTrader.push($('#traderMail').val());
newTrader.push($('#mobileNumber').val());
newTrader.push($('#address').val());
$.ajax({
type: 'POST',
url: insertNewTrader,
data:{_token:token, trader:newTrader}
}).done(function (msg) {
rowData.push(msg['id']);
});
}
alert(rowData[6]);
allItems.push(rowData);
$.ajax({
type: 'POST',
url: insertNewItem,
data:{_token:token, items:allItems}
}).done(function() {
alert('done');
});
});
}
});
しかし、変数に関数の状態を設定し、関数1が完了した後にsetIntervalでそれを確認して実行することができます。これを実際に使用している場合は、関数の状態を変更し、間隔を適切に削除することを忘れないでください。 –
あなたは別のAjaxのハンドラの中で一つのAjaxを実行したいが、最初の.doneハンドラの中には二つ目のAjaxがないと言う。 – mplungjan
最初のAjaxの成功の中で2番目のAjaxリクエストを呼び出す –