我的注册表格有问题, 当有人填写表格并且有一些缺失的输入时,我的PHP代码会运行,有些信息丢失,问题是表格会重置,正确的信息不会显示为输入值,这会使用户填写即使他只犯了一个错误,整个形式也会再次出现
我已尝试<?=$_SERVER['PHP_SELF']?>
并将register.php作为表单操作
答案 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>