-3

我有这个我无法解决的问题。部分原因是我无法用正确的术语来解释它。我是新手,很抱歉这个笨拙的问题。

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

我有产品以及复选框。如果我选​​中了索引值应该存储在新数组中的复选框(应该在此处执行 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!" />

可能这是一个重复的问题,对不起

有任何想法吗 ?

4

2 回答 2

0

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

因此,也许可以使用 jQuery 在您的 DOM 复选框对象上存储指向 JavaScript 对象的链接,.data() 这样您以后可以使用 for 循环匹配该对象,并使用.splice()它从数组中删除它。

编辑 1:所以你想验证复选框的状态?

if (document.getElementById('mycheckbox').checked){
          myarray.push(data);
}
于 2013-07-31T09:47:56.713 回答
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!" />
于 2013-07-31T09:45:11.043 回答