jquery ajax按名称发布selectbox数组

时间:2016-06-12 06:36:49

标签: javascript jquery ajax laravel laravel-5.2

我想做一个ajax请求来更新项目的状态,但是对于一个或多个所选项目。

那么如何发布所有选中的复选框项目以在句柄页面上处理它?

以下是我使用的一些代码。但它只会将一个item发布到流程页面。

<td>
    <input type="checkbox" class="select-all" name="item[]" id="item[78]">
</td>
<td>
    <input type="checkbox" class="select-all" name="item[]" id="item[182]">
</td>

和javascript

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': "{{ csrf_token() }}}"
    }
});

var formData = {
    item: $('input[name=item\\[\\]]').val(),
}

var type = "POST";
var my_url = "/posturl";

$.ajax({
    type: type,
    url: my_url,
    data: formData,
    success: function (data) {
        console.log(formData);
        console.log(data);
    },
    error: function (data) {
        console.log('Error:', data);
    }
});

2 个答案:

答案 0 :(得分:1)

  1. 为每个复选框指定唯一名称
  2. 将所有复选框放在form标记中(所有输入字段都在一个表单中)。
  3. 使用serialize()serializeArray()从表单
  4. 收集数据
  5. 将数据存储在var formData
  6. 代码:

    <form id="form-name">
        <tr>
            <td>
                <input type="checkbox" name="item[1]">
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" name="item[32]">
            </td>
        </tr>
    </form>
    

    使用Javascript:

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': "{{ csrf_token() }}}"
        }
    });
    
    var formData = $('#form').serializeArray();
    
    var type = "POST";
    var my_url = "/posturl";
    
    $.ajax({
        type: type,
        url: my_url,
        data: formData,
        success: function (data) {
            console.log(formData);
        },
        error: function (data) {
            console.log('Error:', data);
        }
    });
    

    这会将一系列项目发布到网址。image upload

答案 1 :(得分:0)

我以不同的方式做同样的事情。

我有复选框列表,名字包含他们的ID。

<input type="checkbox" class="bulkChecked" name="{{$value->id}}">

在你的事件处理程序里面

var ids = [];

$(".bulkChecked:checked").each(function () {

    ids.push($(this).attr("name"));

});

所以此时你已经有了复选框的ID。不,你可以通过&#39; ids&#39;使用ajax调用的数组