根据选中的复选框动态获取数组元素?

时间:2013-07-31 09:39:31

标签: javascript php jquery ajax

我遇到了无法解决的问题。部分是因为我无法用正确的术语来解释它。我是新手,对这个笨拙的问题感到抱歉。

您可以在下面看到我的目标概述。

我有产品和复选框。如果我选​​中了复选框,索引值应该存储在新数组中(应该在这里执行push()操作),如果再次取消选中该复选框意味着它应该执行pop( )操作。

<form method="post">
<input type="checkbox" name="options[]" value="Politics"/> Politics<br/>
<input type="checkbox" name="options[]" value="Movies"/> Movies<br/>
<input type="checkbox" name="options[]" value="World "/> World<br/>
<input type="submit" value="Go!" />

可能是这个重复的问题,对不起给我留言

任何想法?

2 个答案:

答案 0 :(得分:0)

产品将从$ _POST ['options']数组中的表单发布。试试这个。

  $products=array();

    if(isset($_POST['submit'])
    {
    if(isset($_POST['options']) && !empty($_POST['options']))
    {
      $products=$_POST['options'];

       print_r($products);

    }

} 每次发布表格时都会覆盖数组$ products。如果我能正确理解你的问题,就不需要推送或弹出操作。

<form method="post">
<input type="checkbox" name="options[]" value="Politics"/> Politics<br/>
<input type="checkbox" name="options[]" value="Movies"/> Movies<br/>
<input type="checkbox" name="options[]" value="World "/> World<br/>
<input type="submit" name="submit" value="Go!" />

答案 1 :(得分:0)

您正在使用复选框,因此您不能只使用pop,因为它们可能会以不同的顺序取消选中。

因此,可以使用jQuery使用.data()在DOM复选框对象上存储指向JavaScript对象的链接。这样,您可以稍后使用for循环匹配该对象,并使用.splice()将其删除来自阵列。

编辑1: 那么你想验证复选框的状态吗?

if (document.getElementById('mycheckbox').checked){
          myarray.push(data);
}