PHP复选框总是返回[重复]

Posted

技术标签:

【中文标题】PHP复选框总是返回[重复]【英文标题】:PHP checkbox always returns on [duplicate] 【发布时间】:2018-07-05 23:54:38 【问题描述】:

我的表单中有这个复选框:

<input type="checkbox" name="private" id="private" />

当我提交表单时,复选框总是会返回,即使我没有选中它。

echo $_POST['private'] //result is always returns on

$private = isset($_POST['private']) ? 1 : 0; //result is 1 always

我做错了什么?

【问题讨论】:

【参考方案1】:

当您提交 html 表单时,复选框元素的 $_POST['input_name'] 始终设置,因此您的 isset($_POST['private']) 始终返回 true。

您应该直接检查复选框 elemenet 的值,如下所示:

$private = $_POST['private'];

这将为您提供所需的结果,如果选中该复选框,$private 将等于 1,否则为 0。

【讨论】:

仍然返回 1【参考方案2】:

给输入一个值并检查:

<input type="checkbox" name="private" id="private" value="1"/>

$private = isset($_POST['private']) && $_POST['private'] == 1 ? 1 : 0;

【讨论】:

我尝试添加一个值,仍然是同样的问题,当我取消选中我的复选框时它返回 1 当我检查它时,它仍然返回 1 你能用你在给输入值时尝试的方法更新你的问题【参考方案3】:

isset($_POST['private']) 将始终返回 true,因为存在 $_POST['private']

将值添加到复选框 &lt;input type="checkbox" name="private" id="private" value="1" /&gt; 并使用 $private = $_POST['private'] ? 1 : 0; 或者如果您使用 php 7+ $private = $_POST['private'] ?? 0;

【讨论】:

无论如何仍然返回 1。

以上是关于PHP复选框总是返回[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥复选框选择列表总是在 ASP.NET MVC-5 中发布为 null [重复]

为啥复选框状态并不总是传递给 PHP 脚本?

复选框总是返回一个值

PHP如何将复选框值添加到邮件功能[重复]

如何将多个复选框值传递给php [重复]

未选中 POST PHP 时复选框不保存 [重复]