【问题标题】:How to judge whether <input type="checkbox" /> is checked on with PHP?PHP如何判断<input type="checkbox" />是否勾选?
【发布时间】:2009-09-10 16:06:44
【问题描述】:
<form method="POST">

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

</form>

我的意思是表格发布的时候。

【问题讨论】:

  • 供以后参考:var_dump($_POST); :-)

标签: php checkbox


【解决方案1】:

$_GET['hrm']$_POST['hrm'](取决于您的表单的方法属性)如果选中则设置为“打开”,如果未选中则根本不设置。本质上,您可以使用 isset($_GET['hrm']) (或 _POST 如果是这种情况)进行检查 - 如果 isset() 返回 true,则它已被检查。

【讨论】:

    【解决方案2】:
    <input type="checkbox" id="hrm" name="hrm" value="yes" />
    
    
    <?php
    
    if ( isset( $_POST['hrm']) && $_POST['hrm'] === 'Yes' ) {
    }
    
    ?>
    

    【讨论】:

    • 似乎 isset($_POST['hrm']) 就足够了,因为不勾选,根本不会发布带有键“hrm”的antry,对吧?
    • isset() 应该足够了,我只是喜欢彻底,这将解释对值的额外检查正是我想要的。
    【解决方案3】:

    这个方法:

    <?PHP
    if($_POST['hrm']=='ok') echo 'checked';
    else echo 'not';
    ?>
    

    或:

    <?PHP
    if(isset($_POST['hrm'])) echo 'checked';
    else echo 'not';
    ?>
    

    但首先你必须为它赋予价值:

    <input type="checkbox" id="hrm" name="hrm" value='ok' />
    

    【讨论】:

    • 价值是必要的吗?我从萤火虫中看到,没有价值,它会发布类似“hrm: On”的内容。
    • 我建议添加一个值,因为否则您将依赖用户的浏览器来添加该“打开”值。我不知道您是否可以期望每个浏览器都为您做到这一点。如果用户在没有被搞砸的情况下出现。
    猜你喜欢
    • 1970-01-01
    • 2012-04-28
    • 2021-01-26
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    相关资源
    最近更新 更多