我想通過一系列輸入從表單迭代。 foreach輸入我想要發出一個ajax調用,只有在前一個調用完成後纔會觸發。我在這裏閱讀Stack answer。ajax調用迭代通過JavaScript數組
$(function(){
var data = [];
$('input[type=text]').each(function(e,i){
var val = $(this).val();
data.push(val);
});
current = 0;
function do_ajax() {
if (current < data.length) {
$.ajax({
type:"POST",
data:"id="+data[current].value,
url:"tester.php",
success:function(result){
$('#div').append(result);
current++;
do_ajax();
}
});
};
}
do_ajax();
});
HTML
<input type='text' id='users[][name]' value='Bob'>
<input type='text' id='users[][name]' value='Frank'>
<input type='text' id='users[][name]' value='Tom'>
<input type='text' id='users[][name]' value='Joe'>
<input type='text' id='users[][name]' value='Bill'>
<input type='text' id='users[][name]' value='Gary'>
<div id='done'></div>
<div id='div'>DIV</div>
tester.php測試很簡單:
echo $_POST['id'];
我不能得到從tester.php返回任何東西,除了:
undefined
做什麼我需要在數據中添加id ajax調用?
我曾嘗試:
data[current].value;
data[current].val;
data[current].val();
編輯::::::
使用接受的解決方案我也不得不改變:
$('#div').append(result);
到:
$('#div').append(result.responseText);
爲什麼不乾脆把所有的數據一次 – adeneo
這是我試圖做的一個精簡版本。我只發佈了足以讓我的問題。每個ajax調用都會構建前一個的結果。 – bart2puck
好吧 - > https://jsfiddle.net/89ggmrgn/2/ – adeneo