我检查了各种SO问题
但是这些都不会发送超过一组复选框。
我有一个带有一系列复选框的表单:
<input type="checkbox" name="color[]" value="1"/>
<input type="checkbox" name="color[]" value="2"/>
...
<input type="checkbox" name="size[]" value="1"/>
<input type="checkbox" name="size[]" value="2"/>
...
表单上还有一些其他非复选框。
我通过ajax将其发送到php:
$.ajax({
url: '/filter',
type: 'POST',
data: { filter: $(self.form).serializeArray()},
dataType: 'JSON'
});
然后我需要在 PHP 中获取每组复选框值。所以我输出了帖子:
array (size=4)
0 =>
array (size=2)
'name' => string 'color[]' (length=7)
'value' => string '4' (length=1)
1 =>
array (size=2)
'name' => string 'color[]' (length=7)
'value' => string '6' (length=1)
2 =>
array (size=2)
'name' => string 'length[]' (length=8)
'value' => string '3' (length=1)
3 =>
array (size=2)
'name' => string 'length[]' (length=8)
'value' => string '5' (length=1)
但是我怎样才能得到每组值呢?我想要一个具有所有颜色的 var 和一个具有所有大小的 var。
只是为了澄清 - 我正在寻找一种在 PHP 中将颜色放入一个数组和另一个长度数组中的方法。
类似于:
$_POST['filter']['color'];
最佳答案
您希望结果在发送到 php 时已经是检查值的数组吗? 如果是,那么您需要对其进行预处理:
var result = [];
$('input[type="checkbox"][name="color[]"]').each(function(_, ele) {
if ($(ele).prop('checked')) {
result.push($(ele).attr('value'));
}
});
希望是你想要的。
关于javascript - 通过 AJAX 向 PHP 发送多组复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30867581/