我正在尝试迭代表单中的一系列输入。 foreach输入我想发出一个只在上一次调用完成后才会触发的ajax调用。 我在这里读了Stack answer。
$(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
我需要在ajax调用的数据部分中为id添加什么内容?
我试过了:
data[current].value;
data[current].val;
data[current].val();
EDIT ::::::
使用已接受的解决方案我也必须改变:
$('#div').append(result);
为:
$('#div').append(result.responseText);
答案 0 :(得分:2)
没有value
属性,请更改:
data:"id="+data[current].value
到此:
data:"id="+data[current]
并使用complete
代替success
回调,因为complete
在success
和error
回调