这里有fregister和register两种形式。在第一种形式中,我输入名称、用户名并通过单击检查用户 ID 按钮检查用户名的可用性。如果用户名不可用,我将在 php 的帮助下显示消息,并希望通过字段向用户显示此消息他之前填的。
<?php RegFormCrAndValid($name,$username,$email) {?>
<form name="fregister" method="post">
<table>
<tr><td>Name</td>
<td><input type="text" id="name" name="name" value ="<?php echo $name;?>" onChange="ValidAllAlpha()" required></td>
<td><span id="ErrorName"></span></td></tr>
<tr><td>Username</td>
<td><input type="text" id="user" name="UsrText" value="<?php echo $user;?>" required onblur="SetNextElement()"></td>
<td><?php echo $_SESSION['ErrorUserMsg']?></td> <td><input type="submit" name="CheckUsr" value="Check User ID"></td> </tr> </form>
在第二种形式中,用户将首先在此处注册检查可用性,然后通过单击注册进行提交。在此形式中,如果用户还没有成功注册,那么我想显示带有填充字段的消息。
<form name="register" method="post">
<td style="display:none"><input type="text" id="fname" name="fname" required></td>
<td style="display:none"><input type="text" id="fuser" name="fuser" required></td>
<tr><td>Email</td>
<td><input type="email" id="email" name="email" value="<?php echo $email;?>" onChange="ValidateEmail()" required></td>
<td><span id="ErrorEmail"></span></td></tr>
<tr><td><input type="submit" name="submitForm" value="Submit" onClick="ValidationCheckOnSubmit('register');return false;"></td></tr>
</form>
</body>
</html>
这里没有显示两行,因为它们在 javascript 的帮助下从表单 fregister 中获取 name 和 username 的值,然后显示它们。
JavaScript 代码 // 验证在那里,这里我提到了将值传递给 fname 和 fuser 的代码
function SetNextElement()
{
document.getElementById('fname').value = document.getElementById('name').value;
document.getElementById('fuser').value = document.getElementById('user').value;
}
<?php }?> //RegFormCrAndValid($name,$username,$email) this function getting closed over here
php编码
if(isset($_POST['CheckUsr']))
{
if(IsUsernameAvail($_POST['UsrText'])) //IsUsernameAvai checking for the username availabilty return true if available as false
{
$_SESSION['ErrorUserMsg']="<font color=red>This Username Is Available</font>";
}
else
{
$_SESSION['ErrorUserMsg']="<font color=red><--Username is not available</font>";
}
}
if(isset($_POST['submitForm']))
{
if(IsUsernameAvail($_POST['fuser']))
{
echo 'You have been successfully registered';
}
else
{
$_SESSION['ErrorUserMsg']="<font color=red><--Username is not available</font>";
RegFormCrAndValid($_POST['fname'],$_POST['fuser'],$_POST['email']);
//RegFormCrAndValid($name,$username,$email) is the function in which whole html and javascript code is there to create and validate the form.
}
}
else{ if(isset($_POST['CheckUsr']))
{
RegFormCrAndValid($_GET['name'],$_POST['UsrText'],'');
}
else RegFormCrAndValid('','','');
}
我的问题
- 在单击 CheckUserId 按钮时,我希望页面仅停留在那里,为什么单击它后不会停留在同一页面上,并且所有字段都由用户填写。它应该只执行检查,为什么页面会重新加载?
- 如果我能够停留在同一页面上,那么我不需要再次调用 RegFormCrAndValid($name,$username,$email) 这个函数来重建我的表单,是否可以留在那里填充填充而不调用函数。
- 我想消除使用虚假列来再次显示用户名和姓名,因为在真实的注册表单中会有很多字段,我不能对所有这些字段进行虚假呼叫或分配。
我不想使用 ajax 或 jquery,想通过 javascript、php 和 html 来实现一切。