表示输入值后显示错误

时间:2015-07-20 14:00:38

标签: php jquery forms input

我的注册表格有问题, 当有人填写表格并且有一些缺失的输入时,我的PHP代码会运行,有些信息丢失,问题是表格会重置,正确的信息不会显示为输入值,这会使用户填写即使他只犯了一个错误,整个形式也会再次出现

我已尝试<?=$_SERVER['PHP_SELF']?>并将register.php作为表单操作

2 个答案:

答案 0 :(得分:1)

在将值发送到其他页面之前,您必须检查用户填写的信息是否缺失或错误。 例如,您在register.html中有一个这样的表单:

<form method="POST" name="form1" action="page.php" onsubmit="return fieldCheck()"> 

并在ini.html的末尾创建一个javascript函数,它将检查不同的字段,如:

<script>
    function fieldCheck (){
        var var1 = document.getElementById('va1').value; // here you put every var you want to check in your form by using their id

        if(var1 == "" || var1 == " "){
            alert("Please fill var1");
            return false; // The form WILL NOT submit
        } else { // if everything is OK then you can submit the form
            return true; 
        }
    }
    </script>

因此,如果数据未正确填充,表单将不会提交,您不会丢失数据,因为用户不会被重定向

还有另一种解决方案:在用户必须填写的required中添加input。如果他不这样做,会有一个小盒子说要填补这个领域

答案 1 :(得分:1)

问题是您需要将服务器检索到的值设置回结果页面。

例如,如果您的发送页面具有以下配置。

<form action="index.htm" method="POST">
  First Name: <input type="text" name="fname"<br>
  Last Name: <input type="text" name="lname"<br>
</form> 

当用户提交时,您应该收到两个值:

$_GET["fname"]$_GET["lname"]

在这种情况下,在index.html开始时,您应该存储收到的值,然后进行验证检查。如果验证检查失败,则只需返回默认值设置

的页面
<?php
if(isset($_GET['submit']))
{
    $fname=$_POST['lname'];
    $lname=$_POST['fname'];
}

// your validation code
?>
...
<form action="index.htm" method="POST">
  First Name: <input type="text" name="fname" value="<?php echo (isset($fname))?$fname:'';?>"<br>
  Last Name: <input type="text" name="lname" value="<?php echo (isset($lname))?$lname:'';?><br>
</form>