【问题标题】:PHP checkbox always returns on [duplicate]PHP复选框总是返回[重复]
【发布时间】: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

我做错了什么?

【问题讨论】:

    标签: php html


    【解决方案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。
    猜你喜欢
    • 2016-05-03
    • 2012-12-26
    • 2021-08-24
    • 2019-03-13
    • 1970-01-01
    • 2018-05-13
    • 2013-10-29
    相关资源
    最近更新 更多