【问题标题】:How to send all checkboxes in POST? [duplicate]如何在 POST 中发送所有复选框? [复制]
【发布时间】:2015-08-10 17:06:13
【问题描述】:

我在一个表单中有 10 个复选框。只有选中的复选框才会发送到 POST。如何将所有复选框发送到 POST,因为我想做指示更改为选中并更改为不选中复选框。 怎么做?

【问题讨论】:

  • 你只能在 PHP 中检查复选框是否存在,然后根据这个做一些事情。您不能告诉浏览器发送所有复选框。浏览器只会发送选中的复选框。
  • Charlotte 说看看这个$checked = (isset($_POST['your_checkbox'])) ? TRUE : FALSE;
  • 这不是 php 问题。未选中的复选框不会与表单的其余部分一起提交。这是 HTML 的一部分。

标签: php html checkbox


【解决方案1】:

只发送选中的复选框。一种常见的策略是设置具有相同名称和默认未选中值的隐藏输入。只需确保复选框输入在隐藏输入之后:

<input type="hidden" name="cb" value="0">
<input type="checkbox" name="cb" value="1">

那么总会有一个$_POST['cb'],其值为0,表示未选中,值为1,表示已选中。

【讨论】:

  • 很好的技巧现在解除..
  • 这适用于id / document.getElementById() 吗? Intellij 不喜欢重复。无论如何都要试一试。 update 似乎工作正常。
【解决方案2】:

正如我在评论中所说,浏览器只会发送选中的复选框,而不会发送所有复选框。您可以做的是使用 PHP 检查复选框是否存在于 $_POST$_GET 变量中并根据当前状态进行操作。

如果您使用 PHP 脚本动态生成复选框,则可以使用序列化数组创建一个隐藏框,其中包含要检查的所有复选框名称,然后您只能循环遍历它并稍后在验证脚本中检查它们的状态。

由于您没有提供任何代码,我无法为您提供帮助或进行任何改进。

【讨论】:

猜你喜欢
  • 2016-05-13
  • 1970-01-01
  • 2018-08-07
  • 2022-12-06
  • 2016-11-16
  • 2018-06-16
  • 1970-01-01
  • 1970-01-01
  • 2016-11-25
相关资源
最近更新 更多