【问题标题】:PHP - Form Elements ResettingPHP - 表单元素重置
【发布时间】:2015-04-08 21:42:02
【问题描述】:

我制作了一个带有复选框的简单表单,该复选框根据复选框是否设置而回显真或假,但是每次我单击提交时,一旦勾选了复选框控件,它似乎就会重置。

如何修改我的代码以存储任何表单控件的值,这样如果我勾选该框,在我点击提交后它仍然保持勾选状态?

<?php

// Setup Variables
$Result = '';

if (isset($_POST["submit"])) {

    //Use Captials?
    if(isset($_POST['formCheckbox']) && $_POST['formCheckbox'] == 'Yes') {
        $Result = "true";
    } else {
        $Result = "false";
    }

}

?>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap Contact Form</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
  </head>
  <body>
    <div class="container">
        <div class="row">
            <div class="col-md-6 col-md-offset-3">
                <h1 class="page-header text-center">Contact Form Example</h1>

                <form class="form-horizontal" role="form" method="post" action="index.php">

                    Checkbox
                    <input type="checkbox" name="formCheckbox" value="Yes"/>

                    <div class="form-group">
                        <div class="col-sm-10 col-sm-offset-2">
                            <input id="submit" name="submit" type="submit" value="Send" class="btn btn-primary">
                        </div>
                    </div>

                </form> 

                <div class="col-sm-10 col-sm-offset-2">
                    <?php echo $Result; ?>  
                </div>

            </div>
        </div>
    </div>   
    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>

【问题讨论】:

  • >
  • 您正在检查 $_POST 中的值,但在显示复选框的 HTML 时您没有对其执行任何操作
  • 尝试使用推荐的变量命名约定,即 $variableName 或 $variable_name,但不是 $Variable。大写通常用于类名......我也认为这部分:$Result = "true";应该看起来像这样 $result = true;在您的示例中,您使用的是字符串,而在我的示例中,它是布尔值 ...
  • 我做了 $Result = "true";因为我只是想以文本形式查看结果,所以我认为这两种方式都很好。至于命名我知道通常的方式,但我倾向于喜欢大写字母,对于一个严肃的项目我会使用正常的约定。

标签: php forms twitter-bootstrap reset


【解决方案1】:

添加选中的属性 & 更改复选框的显示方式:

<?php

// Setup Variables
$Result = '';

if (isset($_POST["submit"])) {

    //Use Captials?
    if(isset($_POST['formCheckbox']) && $_POST['formCheckbox'] == 'Yes') {
        $Result = "true";
    } else {
        $Result = "false";
    }

}

?>

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap Contact Form</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
  </head>
  <body>
    <div class="container">
        <div class="row">
            <div class="col-md-6 col-md-offset-3">
                <h1 class="page-header text-center">Contact Form Example</h1>

                <form class="form-horizontal" role="form" method="post" action="index.php">

                    Checkbox
                    <?php 
                    if(isset($_POST['formCheckbox']) && $_POST['formCheckbox'] == 'Yes') {
                        echo '<input type="checkbox" name="formCheckbox" value="Yes" checked/>';
                    }
                    else
                        echo '<input type="checkbox" name="formCheckbox" value="Yes"/>';
                    ?>

                    <div class="form-group">
                        <div class="col-sm-10 col-sm-offset-2">
                            <input id="submit" name="submit" type="submit" value="Send" class="btn btn-primary">
                        </div>
                    </div>

                </form> 

                <div class="col-sm-10 col-sm-offset-2">
                    <?php echo $Result; ?>  
                </div>

            </div>
        </div>
    </div>   
    <script src="js/jquery.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>

【讨论】:

  • 谢谢,你知道我怎么能默认勾选复选框吗?
  • 我想出了如何通过将 echo 替换为变量并将其设置为默认值来默认复选框。顺便说一句,如果有人知道,我在这里有一个新问题 - stackoverflow.com/questions/29527104/…
猜你喜欢
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
  • 1970-01-01
  • 2014-05-23
  • 2013-06-14
  • 1970-01-01
  • 1970-01-01
  • 2016-07-31
相关资源
最近更新 更多