2017-12-14 21 views
0

オンラインチュートリアルの後に登録フォームを作成しました。AJAX登録フォームを作成する

現在のコードはデータベースに何も挿入しません。私はちょうど基本的なエラーメッセージが動作するようにしようとしています。

フォームが送信されると、「エラーがありました」というエラーメッセージが表示されます。これは、登録ボタンが押された私のアクションページから来ます。

これは何が原因かわかりません。

多くのコードがあります。

何か助けていただければ幸いです。

(私のフォームで)メインページ:

<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
     <script> 
      $(document).ready(function(){ 
       $("form").submit(function(event){ 
        event.preventDefault(); 
        var forename = $("#txtfirstname").val(); 
        var surname = $("#txtsurname").val(); 
        var username = $("#txtusername").val(); 
        var password = $("#txtpassword").val(); 

        $(".form-message").load("aregisteraction.php", { 
         forename : forename, 
         surname : surname, 
         username : username, 
         password : password 
        }); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
<?php 
require 'leftnav.php'; 
    ?> 
    <div class="two-thirds column"> 

    <h1> Not Registered?</h1> 
    <h3>Register</h3> 
    <form method="post" action="aregisteraction.php">  
    <p> 
    <label for="txtfirstname" >Firstname: </label> </br> 
    <input type="text" name="firstname" id="txtfirstname" /> 
    </p> 
    <p> 
    <label for="txtsurname" >Surname: </label> </br> 
    <input type="text" name="surname" id="txtsurname" /> 
    </p> 
    <p> 
     <label for="ddage" >Age: </label> </br> 
     <select name="ddage"> 
     <option value="0">Select a value</option> 
     <option value="1">0-10</option> 
     <option value="2">11-30</option> 
     <option value="3">31-50</option> 
     <option value="4">51-70</option> 
     <option value="4">71+</option> 
     </select> 
    </p> 
    <p> 
    <label >Gender: </label> </br> 
    <input type="radio" name="gender" value="male"> Male<br> 
    <input type="radio" name="gender" value="female"> Female<br> 
    </p> 
    <p> 
    <label for="txtusername" >Email: </label> </br> 
    <input type="text" name="username" id="txtusername" /> 
    </p> 
    <p> 
    <label for="txtpassword" >Password: </label> </br> 
    <input type="password" name="password" id="txtpassword" /> 
    </p> 
    <p> 
    <label for="txtpassword1" >Re-enter Password: </label> </br> 
    <input type="password" name="password1" id="txtpassword1" /> 
    </p> 
    <input type="submit" name="register" value="Register" /> 
    <p class="form-message"></p> 
</form> 

アクションページ:JavaScriptので

<?php 

if(isset($_POST['register'])){ 

    $forename = $_POST['forename']; 
    $surname = $_POST['surname']; 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

    $errorEmpty = false; 
    $errorEmail = false;  
if(empty($forename)||empty($surname)||empty($username)||empty($password)){ 
     echo "<span> Fill in all fields </span>"; 
     $errorEmpty = true; 
    } 
    elseif (!filter_var($username, FILTER_VALIDATE_EMAIL)) { 
     echo "<span class='form-error'> Fill in a valid email </span>"; 
     $errorEmail = true; 
    } 
    else{ 
     echo "<span class='form-success'> Success </span>"; 
    } 
} 
else{ 
    echo "There was an error!"; 
} 
?> 
<script> 
    $("#txtfirstname, #txtsurname, #txtusername, #txtpassword").removeClass("input-error"); 

    var errorEmpty ="<?php echo $errorEmpty; ?>"; 
    var errorEmail ="<?php echo $errorEmail; ?>"; 

    if(errorEmpty == true){ 
     $("#txtfirstname, #txtsurname, #txtusername, #txtpassword").addClass("input-error"); 
    } 
    if(errorEmail == true){ 
     $("#txtusername").addClass("input-error"); 
     } 
    if(errorEmail == false && errorEmpty == false){ 
     $("#txtfirstname, #txtsurname, #txtusername, #txtpassword").val(""); 
    } 
    </script> 
+2

あなたは 'レジスタ値を掲示し、' ISSET($ _ POST [ '登録'])されていません偽を返す –

答えて

0

あなたはレジスタのための任意の値を送信しません。

つのオプション:登録するために値を追加します:

$(document).ready(function(){ 
    $("form").submit(function(event){ 
     event.preventDefault(); 
     var forename = $("#txtfirstname").val(); 
     var surname = $("#txtsurname").val(); 
     var username = $("#txtusername").val(); 
     var password = $("#txtpassword").val(); 

     $(".form-message").load("aregisteraction.php", { 
     forename : forename, 
     surname : surname, 
     username : username, 
     password : password, 
     register: "ok", 
     }); 

    }); 
}); 

それとも単に別のフィールドに$ _POSTをテストする(レジスタはボタンであり、常にフォームに値が含まれているので)。 PHPでフォームの値をテストするためにも

、次のことができ、ユーザますprint_r()

print_r($_POST); 
関連する問題