【问题标题】:if checkbox is checked change the value using PHP如果选中复选框,则使用 PHP 更改值
【发布时间】:2012-06-19 14:39:27
【问题描述】:

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

我有一个表单,但我在使用此复选框时遇到了问题。

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

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

所以基本上我希望binput 的值在选中复选框时为y,否则如果未选中复选框,则始终为n

【问题讨论】:

  • 复选框不是这样工作的。该复选框在选中时发布一个值或根本不发布一个值。也许你想要收音机输入?
  • 你是网络技术新手
  • 您是否将页面提交给自己?
  • @Somebodyisintrouble 是的,我忘了说这是homework
  • 是的,那么您将把 if (isset($_POST[b])) 检查放在您的 insert/update 查询之前。 =]

标签: php forms


【解决方案1】:

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

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']

【讨论】:

  • 好吧,我希望值将是 n 如果不是检查,它将是 y 如果是检查`我可以从你的代码中做同样的事情吗?
  • 我不太明白你想要做什么。您是在尝试获取复选框的值并在代码中对其进行处理,还是尝试将属性 value="y/n" 逐字输出到复选框的 HTML 中?如果是后者,您可以添加回声。 echo isset($_POST['b']) ? 'checked value="y"' : 'value="n"';
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    测试代码!

    <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'"; ?>
    

    【讨论】:

    • 嗯,这和我正在使用的一样,但它不起作用,这就是我想知道的原因。
    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

      *部署批准:

              <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
      

      【讨论】:

        猜你喜欢
        • 2016-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-08
        • 1970-01-01
        • 2020-04-26
        相关资源
        最近更新 更多