【问题标题】:Put checked checkboxes into an array将选中的复选框放入数组
【发布时间】:2012-06-19 11:00:51
【问题描述】:

澄清我已经得到了选中复选框的值。我需要将它们组织成一个类似于给出的 PHP 示例的数组。谢谢

我正在尝试构建一组选中的复选框,以通过 AJAX 发送以供 PHP 处理。最初我通过 PHP 获得了选中的复选框,但我无法将此过程转换为 Javascript。

有三组不同的复选框(“第一”、“第二”、“第三”),每组都有 4 个不同的复选框可供选中。

复选框的 html 遵循相同的模式,直到值 4。

<input type="checkbox" name="first" class="selection first"  value="1"  />
<input type="checkbox" name="second" class="selection second" value="1"  />
<input type="checkbox" name="third" class="selection third" value="1"  />
<input type="checkbox" name="first" class="selection first"  value="2"  />
<input type="checkbox" name="second" class="selection second" value="2"  />
<input type="checkbox" name="third" class="selection third" value="2"  />

等等……

PHP 代码会返回一个这样的选中复选框数组。

$selections => array(
['first'] => array(
[0] => 1,
[1] => 3,
[2] => 4),
['second'] => array(
[0] => 2),
['third'] => array(
[0] => 1,
[1] => 4)
);

我一直在尝试并尝试在 JavaScript 中复制它,但我不断收到诸如 cannot convert undefined to object 之类的错误。我循环可用位置以创建数组,然后循环所有复选框,如果选中,我会得到值。

console.log() 打印位置(“第一”、“第二”或“第三”)和选择的编号(1 - 4)。这就是我所需要的,但是如何将它放在一个类似于 PHP 的数组中?

function getSelections() {

var selections = new Array();

$('.position').each(function() {
    selections[$(this).attr('value')] = new Array;
});

$('.selection').each(function() {
    if( $(this).prop('checked') == true ) {
        position = $(this).attr('name');
        selection = $(this).attr('value');

        console.log(position + ' - ' + selection);
    }
});
return selections;

}

它将以 JSON 格式发送到 PHP 脚本,我需要将其解码为类似于 PHP 的数组。

【问题讨论】:

  • 搜索 jquery checkboxes abd 你会发现十个重复的问题..
  • 我不是在问如何获取选定的复选框,如果您阅读问题,您会发现我已经获得了选定复选框的值,我正在寻找如何将它们放入类似于php one的数组

标签: php javascript ajax arrays associative-array


【解决方案1】:

不需要什么花哨的东西....改成这个并查看发布的数组。

<input type="checkbox" name="first[]" class="selection first"  value="1"  />
<input type="checkbox" name="second[]" class="selection second" value="1"  />
<input type="checkbox" name="third[]" class="selection third" value="1"  />
<input type="checkbox" name="first[]" class="selection first"  value="2"  />
<input type="checkbox" name="second[]" class="selection second" value="2"  />
<input type="checkbox" name="third[]" class="selection third" value="2"  />

然后像往常一样序列化它以通过 ajax 提交。

【讨论】:

  • 这就是我最初使用 PHP 的方式,不知道它可以与 JS 一起使用。我会尝试序列化并让你知道它是否有效!非常感谢!
  • 这些值现在在 ajax 中出现了!感谢您的帮助!
  • 今天的课程......永远不要试图让它变得比它需要的更复杂!先尝试简单的事情:)
【解决方案2】:

Jquery :checked Selector 可能会有所帮助

【讨论】:

    猜你喜欢
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多