【问题标题】:How to prevent forms from emptying inputs by submiting the form in html? [closed]如何通过在html中提交表单来防止表单清空输入? [关闭]
【发布时间】:2016-03-23 01:03:36
【问题描述】:

我正在使用 php 和 html 编写表单。 此表单具有验证控件。 当我提交表单时,所有文本框都为空,如果用户填写了例如 5 个输入中的 3 个,因为如果这两个输入他/她现在必须再次填写这 3 个输入。 如何通过提交表单来防止表单清空输入?

【问题讨论】:

  • 提交后是否要重新填写表单?
  • 您可以使用会话和/或 Ajax。
  • 如果你想重新填充,如果你的目标是同一页面,那么只需使用 $_REQUEST 数组来重新填充。添加一些 html 和您的 php 代码以获得更多说明
  • 好吧,我只想在提交表单之后保留用户在提交表单之前写的文本。
  • 三元运算符和我上面已经提到的。

标签: php html forms validation submit


【解决方案1】:

如果您的验证脚本和表单代码在同一个文件中,您可以将 $_POST 值放入表单中。

<?php
$field1 = '';
$field2 = '';
...
$field5 = '';
if($_SERVER['REQUEST_METHOD']=="POST"){
    $field1 = $_POST['field1'];
    $field2 = $_POST['field2'];
    ...
    $field5 = $_POST['field5'];

    if(validation is true){
     //do something
    }
}
    ?>

    <form method="post">
       <input type="text" name="field1" value="<?= $field1 ?>" >
       <input type="text" name="field2" value="<?= $field2 ?>" >
        ...
       <input type="text" name="field5" value="<?= $field5 ?>" >
       <input type="submit" value="submit" >
    </form>

在 RiggsFolly 评论后编辑。

【讨论】:

  • 恐怕这实际上会在页面首次从链接或使用浏览器地址栏加载时产生错误,因为$_SERVER['REQUEST_METHOD']=="POST") 将是 FALSE,因此您不会创建 $fields1 变量. 改用三元运算符或在 html 部分的每个字段中包含 isset()
【解决方案2】:

检查表单字段是否设置在 $_REQUEST 数组中,并相应打印其值

<form method="post">
    <input type="text" name="field1" value="<?php echo (isset($_REQUEST["field1"])? $_REQUEST["field1"]:""?>" >
    <input type="text" name="field2" value="<?php echo (isset($_REQUEST["field2"])? $_REQUEST["field2"]:""?>" >
    ...
    <input type="text" name="field5" value="<?php echo (isset($_REQUEST["field5"])? $_REQUEST["field5"]:""?>" >
    <input type="submit" value="submit" >
</form>

【讨论】:

    【解决方案3】:

    我想到了javascript:

    function validateForm() {
         var x = document.forms["myForm"]["fname"].value;
         if (x == null || x == "") {
             alert("Name must be filled out");
             return false;
         }
     }
    

    你可以找到所有关于在:http://www.w3schools.com/js/js_validation.asp

    效果很好,当用户让该字段为空时,它会说:“必须填写姓名”。在您填写之前,提交不会执行任何操作...

    //对不起英语不好

    【讨论】:

    • 这与验证无关。这是关于保留表单数据。
    • 但是您仍然需要在服务器上进行验证,因为它很容易关闭 javascript 或将数据发送到服务器而无需查看表单
    • 好吧,但是,这是一个不好的问题:)
    • 当然不可能!可能是!可能!可能不是!!!
    猜你喜欢
    • 2017-01-23
    • 1970-01-01
    • 2012-11-19
    • 2020-11-30
    • 1970-01-01
    • 2016-02-07
    • 2019-02-28
    • 2021-01-30
    • 1970-01-01
    相关资源
    最近更新 更多