如何使用jQuery通过Ajax发送复选框数组的值?

Joh*_*nde 12 php arrays ajax jquery

我有一个包含大量表单字段(12 xn行)的表单.每行中的第一个字段(代表产品)是一个类似于此的复选框:

<input type="checkbox" class="ids" name="ids[]" value="1">
Run Code Online (Sandbox Code Playgroud)

每个复选框的值都是唯一的.

我想要做的是将检查值发送到PHP脚本以通过Ajax进行处理.我遇到的问题是正确地将ID提供给服务器.我尝试过几件事,包括:

$('.ids:checked').serialize();
Run Code Online (Sandbox Code Playgroud)

var ids = [];
$('.ids:checked').each(function(i, e) {
    ids.push($(this).val());
});

$.ajax({
    url: "stub",
    type: "post",
    dataType: "json",
    data: {
        'ids[]': 'ids[]='+ids.join('&ids[]=')
    },
    success: function(data) {
        // stub
    }
});
Run Code Online (Sandbox Code Playgroud)

但这些都导致在服务器上获取此信息:

ids[]=104&ids;[]=105
Run Code Online (Sandbox Code Playgroud)

我可以序列化整个表单并将其发送,但这可能会导致发送大量未使用的数据.

如何仅delete[]将服务器的值发送给服务器?理想情况下,PHP将其识别为数组?

(我已经通过以逗号分隔的字符串发送ID来解决它,但是我想知道如何实现这一点,因为我花了足够的时间试图解决它).

Kri*_*ris 18

这对我来说很好

<input type="checkbox" class="ids" name="ids[]" value="2">
<input type="checkbox" class="ids" name="ids[]" value="3">
<input type="checkbox" class="ids" name="ids[]" value="4">
<input type="checkbox" class="ids" name="ids[]" value="5">
<input type="checkbox" class="ids" name="ids[]" value="6">

<div id="response"></div>
<button id="submit">Submit</button>

<script>

$('#submit').click(function() {

$.ajax({
    url: "stub.php",
    type: "post",
    data: $('.ids:checked').serialize(),
    success: function(data) {
    $('#response').html(data);
    }
});


});
</script>
Run Code Online (Sandbox Code Playgroud)

然后在stub.php上

var_dump($_POST);
Run Code Online (Sandbox Code Playgroud)