javascript - 通过 AJAX 向 PHP 发送多组复选框

标签 javascript php jquery ajax

我检查了各种SO问题

  1. How to send a checkbox group via ajax in jquery?
  2. serializing checkboxes in jQuery

但是这些都不会发送超过一组复选框。

我有一个带有一系列复选框的表单:

<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/

相关文章:

javascript - 根据滚动位置隐藏和显示导航箭头

javascript - 更改window.open的标题

PHP代码使用for循环+1个月更新日期

javascript - jQuery:最后不适用于混合标签

javascript - 如何使用 Select 2 js 找到确切的单词?

jquery - 显示/隐藏具有相同类的 div - jquery

javascript - Grunt-Browserify 忽略选项

javascript - Google Apps 脚本 onFormSubmit(e) "e is undefined"?

php - 在 MySQL 中存储 SHA-512 哈希

php - 当 php.ini 存在时,PDO 从 phpinfo() 中消失