fregister と register の 2 つの形式があります。最初のフォームでは、名前、ユーザー名を入力し、[ユーザー ID の確認] ボタンをクリックしてユーザー名の可用性を確認しています。彼は前に満たした。
<?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>
2 番目のフォームでは、ユーザーはここで最初に空き状況を確認して登録し、[登録] をクリックして送信します。このフォームでも、ユーザーが正常に登録されていない場合は、入力フィールドを含むメッセージを表示します。
<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>
2 つの行は、javascript を使用してフォーム fregister から名前とユーザー名の値を取得して表示しているため、ここには表示されません。
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 を使用してすべてを達成したいと考えています。