收集所有复选框的所有值以通过ajax传递

问题描述 投票:0回答:2

我想获得可以通过ajax传递的字符串中所有选中复选框的值。

<input value="1" class="customer" type="checkbox">
<input value="2" class="customer" type="checkbox">
<input value="3" class="customer" type="checkbox">
<input value="4" class="customer" type="checkbox">
<input value="5" class="customer" type="checkbox">

所以如果检查了2和5,我想创建一个变量var checked='2,5'

var checked_arr = [];
$('.customer:checked').each(function(){
    checked_arr.push($(this).val());
});
checked = JSON.stringify(checked_arr);
$.ajax({
    type    : 'POST',
    url     : '//'+base_url+'/ajax/customers.php',
    data    : 'checked='+checked,
    success : function(data) {
    }
}); 

我认为我需要对其进行json编码以使数组通过,但是我什至似乎都没有正确创建数组。我认为在将值推入数组时缺少某些东西。

jquery arrays ajax each
2个回答
2
投票

JSON.stringify()将创建["2","5"],而不是2,5。您应该使用

var checked = checked_arr.join(',');

或者您可以只传递数组本身:

data: {checked: checked_arr},

[$.ajax将对此进行格式化,以便$_POST['checked']将成为数组。


0
投票

您应该使用Array.prototype.join()而不是JSON.stringify

checked =  checked_arr.join(',');

有关详细信息,您可以阅读韦恩的答案here

© www.soinside.com 2019 - 2024. All rights reserved.