如果选中复选框,则使用PHP更改值

时间:2012-06-17 05:19:39

标签: php forms

我正在尝试完成一项简单的任务(但对我来说并不简单)。

我有一个表单,我在使用此复选框时出现问题。

    <input type="checkbox" name="b"  
<?php if (isset($_POST[b])) echo "value='y'"; else echo "value='n'"; ?>/>

我不确定我是否使用正确的,但它对我不起作用。

所以基本上我希望input的{​​{1}}的值为b如果选中该复选框,否则如果取消选中该复选框,它将始终为y

5 个答案:

答案 0 :(得分:4)

这不是复选框的工作方式。

检查checked属性何时出现。

<input type="checkbox" name="a" value="a" checked /> Checked
<input type="checkbox" name="a" value="a" /> NOT Checked

所以你要使用

<input type="checkbox" name="a" value="a" <?php echo isset($_POST['b']) ? "checked" : ""; ?>/>

现在,如果设置了$_POST['b'],则会选中该复选框。

此外,您还有$_POST[b]b应该在引号中。它应该是$_POST['b']

答案 1 :(得分:2)

您必须使用两个条件,一个用于显示已选中/未选中,第二个用于显示y / n

 <input type="checkbox" name="b" <?php echo (isset($_POST['b'])?"value='y'":"value='n'")?> 
 <?php echo (isset($_POST['b'])?"checked":"") ?>  />

答案 2 :(得分:0)

测试代码!

<form method="post">
   <input type="checkbox" name="b" <?php if (isset($_POST['b'])) echo "value='y'"; else echo "value='n'"; ?>/>
   <input type="submit" name="asd" value="asd">
</form>

所以请使用以下

<?php if (isset($_POST['b'])) echo "value='y'"; else echo "value='n'"; ?>

答案 3 :(得分:0)

这对我有用:   
  第一步:给复选框一个默认值   
  然后:仅在选中该框时才分配所需的值。

    <input type="hidden" name="b" value="n">
    <input type="checkbox" name="b" value="y" >

答案 4 :(得分:0)

        *部署批准:                                    

        <input type="radio" name="dep_approval_status" value="Approved"
            <?php 
                if ($deploy['dep_approval_status'] === "Approved")
                {
                    echo ' checked'; 
                }

            ?> 
        /> Yes, approved 

        <input type="radio" name="dep_approval_status" value="Not Approved"
            <?php 
                if ($deploy['dep_approval_status'] === "Not Approved")
                {
                    echo ' checked';
                }
            ?> 
        /> Not Approved