2016-03-29 5 views
-1

フォームのいずれかのフィールドに値を入力してラージスをクリックすると、送信されますが、すべてのフィールドが満たされるまで送信しないでください。知っている、私は私がragisterをクリックしたときに私が得ているすべての値を見ることができるトップにpreタグを撮影したので、知っている。フォームフィールドから任意の値を入力するとフォームが提出されるPHPを使用する

<?php 

$error_array = array(); 
$fname = $lname = $email = $dob = $Mchecked = $Fchecked = $hobbies =""; 

if(isset($_GET["sbt_save"])) 
{ 
echo '<pre>'; print_r($_GET); echo "</pre>"; 
    if($_GET['fname']=="") 
    {   
     $err ="Please Enter your first name"."<br>"; 
     array_push($error_array,$err); 
    } 
    else 
    { 
     $fname = test_input($_GET['fname']); 
    } 

    if($_GET['lname']=="") 
    { 
     $err ="Please Enter your last name"."<br>"; 
     array_push($error_array,$err); 
    } 
    else 
    { 
     $lname = test_input($_GET["lname"]); 
    } 

    if($_GET['email']=="") 
    {  
     $err ="Please Enter your email"."<br>"; 
     array_push($error_array,$err); 
    } 
    else 
    { 
     $email = test_input($_GET["email"]); 
    } 

    if($_GET['dob']=="") 
    { 
     $err ="Please Enter your date of birth"."<br>"; 
     array_push($error_array,$err); 
    } 
    else 
    { 
     $dob = test_input($_GET["dob"]); 
    } 

    if(!isset($_GET["gender"])) 
    { 
     $err ="Please select gender"."<br>"; 
     array_push($error_array,$err); 
    } 
    else 
    { 
     $gender = $_GET["gender"]; 
     if ($gender == "Male") 
     { 
      $Mchecked = "checked"; 
     } 
     else if ($gender == "Female") 
     { 
      $Fchecked = "checked"; 
     } 
    } 

    if(!isset($_GET['hobbies'])) 
    { 
     $err ="Please Enter your hobbies"."<br>"; 
     array_push($error_array,$err); 
    } 
    else 
    { 
     $hobbies = test_input($_GET['hobbies']); 
    } 
} 

function test_input($data) 
{ 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 


?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Ragistration Form</title> 
<link rel="stylesheet" type="text/css" href="ragistration_form.css"> 
<!-- 
<script src="jquery-2.2.1.min.js"></script> 
<script> 

$(document).ready(function(event) 
{  
    $(".sbt_button").click(function(event) 
    {   
     var error_arr = [];    
     var email_value = $("#email").val();      
     var position_of_at = email_value.indexOf('@');   
     var position_of_dot = email_value.lastIndexOf('.'); 



     if($("#fname").val() == null || $("#fname").val() == "") 
     { 
      var err = "First Name"; 
      error_arr.push(err); 
     } 

     if($("#lname").val() == null || $("#lname").val() == "") 
     { 
      var err = "Last Name "; 
      error_arr.push(err); 
     } 
     if(position_of_at == -1 || position_of_dot == -1 || (position_of_at + 2) >= position_of_dot) 
     { 
      var err = "Email "; 
      error_arr.push(err); 
     } 

     if($("#dob").val() == null || $("#dob").val() == "") 
     { 
      var err = "Date of Birth "; 
      error_arr.push(err); 
     } 

     if(!$("input[type='radio']").is(":checked")) 
     { 
      var err = "Gender "; 
      error_arr.push(err); 
     } 

     if(!$("input[type='checkbox']").is(":checked")) 
     { 
      var err = "Hobbies "; 
      error_arr.push(err); 
     } 


     if(error_arr.length !=0) 
     { 
      event.preventDefault(); 
      alert(error_arr); 
     }   
    }); 
}); 

</script> 
--> 
</head> 
<body> 
<form class="form" name="myForm" action="" method="GET"> 
    <table> 
    <tr> 
     <p class="heading">Ragistration Form</p> 
    </tr> 
    <?php 
if($error_array !="") 
{ 
    foreach($error_array as $value) 
    {  
     echo "<tr style='color:red;'><td> ". $value. "</td></tr>";     
    } 
} 

?> 
    <tr> 
     <td></td> 
     <td></td> 
    </tr> 
    <tr> 
     <td class="field_Name">First Name :<b style="color:red">*</b></td> 
     <td><input type="text" name="fname" id="fname" class="inputfield_Name" /></td> 
    </tr> 
    <tr> 
     <td class="field_Name">Last Name :<b style="color:red">*</b></td> 
     <td><input type="text" name="lname" id="lname" class="inputfield_Name" /></td> 
    </tr> 
    <tr> 
     <td class="field_Name">Email :<b style="color:red">*</b></td> 
     <td><input type="text" name="email" id="email" class="inputfield_Name" /></td> 
    </tr> 
    <tr> 
     <td class="field_Name">Date of Birth :<b style="color:red">*</b></td> 
     <td><input type="date" name="dob" id="dob" class="inputfield_Name" /></td> 
    </tr> 
    <tr> 
     <td class="field_Name">Gender :<b style="color:red">*</b></td> 
     <td><input type="radio" name="gender" value="Male"class="inputfield_Name" <?php echo $Mchecked;?> /> 
     Male 
     <input type="radio" name="gender" value="Female" <?php echo $Fchecked;?> /> 
     Female</td> 
    </tr> 
    <tr> 
     <td class="field_Name">About Yourself :</td> 
     <td><textarea name="abt" class="inputfield_Name"$></textarea></td> 
    </tr> 
    <tr> 
     <td class="field_Name">Hobbies :<b style="color:red">*</b></td> 
     <td><input name="hobbies" value="Cricket" type="checkbox" id="hobbies" class="inputfield_Name" /> 
     Cricket 
     <input name="hobbies" value="Singing" type="checkbox" /> 
     Singing 
     <input name="hobbies" value="Travling" type="checkbox" /> 
     Travling</td> 
    <tr> 
     <td></td> 
     <td><input name="hobbies" value="Writing" type="checkbox" class="inputfield_Name" /> 
     Writing 
     <input name="hobbies" value="Teaching" type="checkbox" /> 
     Teaching 
     <input name="hobbies" value="Driving" type="checkbox" /> 
     Driving </td> 
    </tr> 
    <tr> 
     <td></td> 
     <td><input type="submit" value="Ragister" name="sbt_save" class="sbt_button"/></td> 
     </td> 
    </tr> 
    </table> 
</form> 
</body> 
</html> 
+0

現在のところ、送信は無効ですが、フォームは送信されます。 PHPがサーバー側であることを認識することが重要です。この検証は送信後に行われます。 JavaScriptはクライアント側であり、フィールドが無効であればフォームの提出を即座に検証し、防止するために使用できます。私はあなたがいくつかのJavaScriptを持っていることがわかりますが、コメントアウトされています。コードのその部分で何か問題がありますか? – War10ck

+0

@ War10ckいいえ、私はちょうどPHPの検証が動作しているかどうかをチェックするコメントをしていない – Shanky

答えて

0

私はあなたのコードを試してみました。下のスクリーンショットを参照してください。

​​ 投稿する前にフォームを検証したい場合は、コメント付きのjavascript/client-sideバリデーションを使用し、それを後で検証したい場合は、PHP /サーバーサイド検証を使用します。

他の問題に直面している場合は教えてください。

関連する問題