ajax调用遍历javascript数组

时间:2016-10-05 18:54:51

标签: jquery ajax

我正在尝试迭代表单中的一系列输入。 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);

1 个答案:

答案 0 :(得分:2)

没有value属性,请更改:

data:"id="+data[current].value

到此:

data:"id="+data[current]

并使用complete代替success回调,因为completesuccesserror回调

之后执行