【问题标题】:Get array elements dynamically based on checkbox checked? [duplicate]根据选中的复选框动态获取数组元素? [复制]
【发布时间】:2023-04-10 06:09:01
【问题描述】:

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

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

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

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

有什么想法吗?

【问题讨论】:

  • 您的相关 HTML 代码在哪里...请也发布...
  • new 数组 将被定义在哪里呢?你有什么尝试过的吗?
  • 对不起,这实际上不是我的目标,这是我任务的核心...... :)
  • @dbf 我对这项技术还很陌生,现在我什么都没尝试过?
  • a 技术不熟悉并不是您在此处提出的每个问题都应该以此为借口。到目前为止,您在 SO 上提出的所有其他问题都已多次提到它。不努力,怎么学?

标签: javascript php jquery ajax


【解决方案1】:

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

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

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

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

【讨论】:

  • 感谢您的信息@Grallen 实际上我的意思是如果我选中了复选框,那么只有它应该存储在一个数组中,否则不需要......
  • 我想我明白了。添加了“编辑 1:”来回答。
【解决方案2】:

产品将从 $_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!" />

【讨论】:

  • 感谢您的回复,我会做这个...
  • 为什么会出现这个错误 ReferenceError: isset is not defined if(isset($_POST['options']) && !empty($_POST['options']))
  • 试试 if($_POST['options'] && !empty($_POST['options']))
  • $_POST 未定义我得到这个
  • 好的。您能否在发布表格后在此处打印此语句的输出: print_r($_REQUEST);也请像我在回答中所做的那样在提交按钮中添加名称
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
相关资源
最近更新 更多