将项添加到jquery数组

时间:2015-03-24 17:44:36

标签: jquery arrays ajax

我有一个包含动作下拉列表的表单和一系列带有id的复选框,我想获取所有选中的复选框,并选择所选的操作并通过ajax将它们发送到另一个页面。当前的尝试是一个数组,我还能尝试什么?

<select name='action' id='action'>
    <option value=''></option>
    <option value='reassign'>Reassign</option>
    <option value='merge'>Merge</option>
    <option value='move'>Move</option>
</select>

$('select').on('change',$('#action'),function(){
    data = [];
    $.each($('input:checkbox'),function(e,i){
        if($(this).is(':checked')){
            data[e] = $(this).attr('id');
        }
    });
    data.add = $(this).val();
    $.ajax({
        type:"POST",
        data:{data:data},
        url:"bulkChange.php",
        success: function(result){
            alert(result);
        }
    });
});

目前,我没有看到添加到阵列的操作。 bulkChange.php上的print_r($ _ POST)显示:

[data] => Array
    (
        [0] => c_32481
        [1] => c_32477
        [2] => 
        [3] => 
        [4] => 
        [5] => c_32308
    )

我想看看:

[data] => Array
    (
        [0] => c_32481
        [1] => c_32477
        [2] => 
        [3] => 
        [4] => 
        [5] => c_32308
        [6] => merge
    )

3 个答案:

答案 0 :(得分:1)

在您的代码中,而不是使用

data.add = $(this).val();

使用data.push($(this).val());

应该这样做。

答案 1 :(得分:0)

$('select').on('change',$('#action'),function(){
                    data = [];
                    $.each($(this).find('option'),function(e,i){
                            if($(this).is(':checked')){
                            data[e] = $(this).attr('value');
                            }
                    });
                   console.log(data);
                    });

这是否构建数据数组,因为你喜欢它?

答案 2 :(得分:0)

尝试此操作而不是使用

  

data.add = $(this).val();

$('select').on('change',$('#action'),function(){
    data = [];
    $.each($('input:checkbox'),function(e,i){
        if($(this).is(':checked')){
            data[e] = $(this).attr('id');
        }
    });
    //array push
    data.push($(this).val());
  
    $.ajax({
        type:"POST",
        data:{data:data},
        url:"bulkChange.php",
        success: function(result){
            alert(result);
        }
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<select name='action' id='action'>
    <option value=''></option>
    <option value='reassign'>Reassign</option>
    <option value='merge'>Merge</option>
    <option value='move'>Move</option>
</select>