我正在使用 Ajax 通過 PHP 將資料插入 MySQL,請參閱下面的代碼:
var c = 0;//initialize counter
function add(){
for (var i = 0; i < 10; i ) {
$.ajax({
type: "POST",
url: "insert.php",
data: {
id: id,
name: name,
email: email,
},
dataType: "json",
success: function (res) {
c ;//increment counter
},
});
}
alert(c);//display counter
}
我想要做的是在 for 回圈結束后顯示警報(插入操作完成的次數)。我已經像上面的代碼那樣做了它不起作用。它總是顯示為零。
有沒有辦法完成相同的功能?
uj5u.com熱心網友回復:
這種方式有效。
var c = 0;
async function add() {
for (var i = 0; i < 10; i ) {
await $.ajax({
type: "POST",
url: "https://upwork.codefusiontm.com/stack/002",
data: {
id: "id",
name: "name",
email: "email",
},
dataType: "json",
success: function (res) {
c ;//increment counter
},
});
}
}
$(() => {
add().then(() => {
console.log("=>",c)
})
})
您需要將promisse與async和wait結合使用。您使用 async 并將 add 方法創建為 async
async function add() {
之后,你在 $.ajax 中添加await因為只有這樣 ajax 只會在POST回傳后才增加 c ,這必須完成,因為你在 for 中啟動了幾個POST,所以必須等待每個完成能夠正確遞增。
await $.ajax({
綜上,最終可以得到變數c的值
$(() => {
add().then(() => {
console.log("=>",c)
})
})
不要忘記,方法呼叫必須在document.ready 中進行
$(() => {
})
uj5u.com熱心網友回復:
考慮以下。
var c = 0; //initialize counter
function add() {
for (var i = 0; i < 10; i ) {
$.ajax({
type: "POST",
url: "insert.php",
data: {
id: id,
name: name,
email: email,
},
dataType: "json",
success: function(res) {
c ;
if (i == 10) {
alert(c); //display counter
}
},
});
}
}
當您執行最后一次回圈時,i將是 9,然后增加到 10。因此我們可以檢查是否i等于10,然后我們知道回圈已經運行了最后一次。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/378624.html
標籤:javascript php 查询 阿贾克斯
上一篇:VisualStudiobundler導致JSUncaughtReferenceError:初始化錯誤前無法訪問變數。有誰知道我該如何解決這個問題?
