【问题标题】:PHP Form Post back to same page checkbox selected选中 PHP 表单回发到同一页面复选框
【发布时间】:2013-11-04 15:45:18
【问题描述】:

我有一个简单的表单,上面有一个复选框。

如果用户选择它并提交表单(表单回发到同一页面) - 我如何确保在页面重新加载时选中该复选框?

【问题讨论】:

    标签: php forms post postback


    【解决方案1】:
    if($_POST["name_of_the_checkbox"]) { /*TODO*/ }
    

    【讨论】:

      【解决方案2】:

      假设您有以下复选框输入:

      <input type="checkbox" name="action" value="Option 1" >1;
      <input type="checkbox" name="action" value="Option 2" >2;
      <input type="checkbox" name="action" value="Option 3" >3;
      

      您希望将值存储在 $_POST 变量中,如下所示:

      if ($_SERVER["REQUEST_METHOD"] == "POST") {
      
      if (empty($_POST["action"])){
          $Q1Err = "<br />Please Select Atleast One";
      } else {
          $Q1 = ($_POST["action"]);
      }
      

      与往常一样,您应该在任何页面开始之前将变量声明为空:

      $Q1 = ""
      $Q1Err = ""
      

      然后回到input标签里面输入php标签:

      <input type="checkbox" name="action" <?php if (isset($Q1) && $Q1=="Option 1") echo "checked";?> value="Option 1" >1;
      <input type="checkbox" name="action" <?php if (isset($Q1) && $Q1=="Option 2") echo "checked";?> value="Option 2" >2;
      <input type="checkbox" name="action" <?php if (isset($Q1) && $Q1=="Option 3") echo "checked";?> value="Option 3" >3;
      <span><br /><?php echo $Q1Err;?></span> 
      

      如果您有任何其他问题,请告诉我。我可能忘记了什么……但这应该是一个好的开始。

      【讨论】:

        【解决方案3】:

        首先,在表单标签中设置action属性,用于向自定义php脚本发送数据。如果它为空,则表单将数据发送到同一页面(重新加载)。其次,用于检查脚本使用的内容:

        <?=var_export($_REQUEST)?>
        

        在表单定义之前或之后。

        【讨论】:

          【解决方案4】:

          试试这个

          <input type="checkbox" name="check_box_name" <?php if (isset($_POST['check_box_name'])) { echo 'checked="checked"'; } ?>>
          

          【讨论】:

            【解决方案5】:

            我只是让用户发布表单,并在您定义表单的位置有以下代码:

            <?php
            if(isset($_POST["checkbox-name"])) { 
                echo "<input type="checkbox" value="value" name="Please check me"></input>";
            } else {
                echo "<input type="checkbox" value="value" name="Please check me" checked></input>";
            } 
            ?>
            

            请注意,这只是为了清楚起见,您自然也可以通过仅将 php 标签放在输入字段的实际“已检查”参数周围来使其更短:

            <input type="checkbox" value="value" name="Please check me"
            <?php 
            if(isset($_POST["checkbox-name"])) { 
                echo "checked";
            }
            ?>
            ></input>
            

            这将检查输入的末尾,并会导致相同的结束输出

            【讨论】:

              【解决方案6】:
              <input type="checkbox" name="x" <?php echo isset($_POST['x']) ? 'checked' : ''; ?>>
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2018-12-23
                • 1970-01-01
                • 1970-01-01
                • 2012-06-16
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多