【问题标题】:How to not clear input fields in php form?如何不清除php表单中的输入字段?
【发布时间】:2013-05-02 18:35:27
【问题描述】:

我有一个使用 php 的网页,并且有一堆输入字段,用户在其中输入一些数据,然后我将输入转换为 SQL 语句来查询一些数据库。我成功地解析了输入字段并将 SQL 语句放在一起,但是当他们单击“提交”按钮时,所有输入字段都被清除了。我怎样才能使这些输入字段不会在每次用户单击“提交”时被删除?

【问题讨论】:

  • 回显输入元素中的值
  • 我知道以前有人问过这个问题。刚刚找到它。
  • 我敢打赌,您不是第一个在这里提出这个问题的人,但通常这应该已经在您使用的 HTML 参考中进行了概述。 developer.mozilla.org/en-US/docs/HTML/Element/Input

标签: php html sql input


【解决方案1】:

将它们存储在像

这样的局部变量中
<?php
$name = '';
$last = '';

if(isset($_POST['post_me'])) {
   $name = $_POST['post_me'];
   $last = $_POST['last'];
   //Process further
}
?>
<form method="post">
  <input type="text" name="name" value="<?php echo $name; ?>" />
  <input type="text" name="last" value="<?php echo $last; ?>" />
  <input type="submit" name="post_me" />
</form>

【讨论】:

    【解决方案2】:

    这样的事情应该可以工作。

    <?
    if(!isset($_POST['stackoverflow'])){
        $txt = "";
    } else {
        $txt = $_POST['stackoverflow'];
    }  
    ?>
    
    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form action="" method="post">
            <input type="text" name="stackoverflow" value="<?= $txt ?>">
        </form>
    </body>
    </html>
    

    【讨论】:

      【解决方案3】:

      您需要检查页面加载时是否已经设置了 POST 值(假设您使用的是 POST)(因为它们已经被提交)。如果已设置,则将其内容回显到表单字段的 value 属性中,或根据字段类型设置 checked=checked 等。

      【讨论】:

        【解决方案4】:

        这一直对我有用:

        &lt;input type="text" name="somename" value="&lt;?php echo htmlspecialchars($_POST['somename']); ?&gt;"&gt;

        【讨论】:

          【解决方案5】:

          关键是将帖子值存储在会话中并使用值标签显示它。 示例:
          HTML:

              <form action="index.php" method="post">
                  <input type="text" name="name" placeholder="First Name"
                  value="<?php
                  if (isset($_SESSION['name'])) {
                      echo $_SESSION['name'];
                  }?>" >
          
                 <input type="submit" name="submit">
             </form>
          

          PHP:

                session_start();
                if (isset($_POST['submit'])) {
                  $name=$_POST['name']); 
                  $_SESSION['name']=$name;
                }
          

          【讨论】:

            【解决方案6】:

            你在 PHP 中使用过会话和 Cookies 吗??

            您可以在为用户更新数据库之前将值存储在表单提交的会话中,然后检查是否存在用户会话并且为字段输出设置值,否则输出为空。

            【讨论】:

              【解决方案7】:

              您只需确保 HTML 输入值具有该字段的相应 php 变量的 php echo 语句。

              【讨论】:

                【解决方案8】:

                最简单的答案

                `<form method="post" onsubmit="return false">`
                

                即使使用 htmlentities,使用 PHP 对输入进行编码也是危险的 - 希望这会有所帮助

                【讨论】:

                  猜你喜欢
                  • 2022-11-17
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2021-09-27
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2023-03-09
                  相关资源
                  最近更新 更多