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']
。
将值添加到复选框 <input type="checkbox" name="private" id="private" value="1" />
并使用 $private = $_POST['private'] ? 1 : 0;
或者如果您使用 php 7+ $private = $_POST['private'] ?? 0;
【讨论】:
无论如何仍然返回 1。以上是关于PHP复选框总是返回[重复]的主要内容,如果未能解决你的问题,请参考以下文章