2016-05-08 13 views
0

私は、このコードを組み込んで、詳細が与えられた後にユーザーを登録できるようにしています。すべての詳細がデータベースに挿入され、新しいページがロードされます。すべてAJAXを使用して実行されます。SQL DBに値を挿入しないAJAXフォーム

文脈を維持するのに役立ちます。すべてのページは、index.php内のmain-content div内にロードされます。それらはすべて、ajaxの成功時にclick.js部分に表示されるのと同じ関数を使用してロードされます。 Register.phpは、このdiv内にロードするページの1つです。

現在、フォームは正しくロードされ、送信時には新しいページがajax関数に従って読み込まれます。ただし、データベースには何も挿入されません。

免責事項:私はまだセキュリティ上の目的でこれを設定していません。これは、SQLインジェクションを防ぐために設定する前に、まず機能の問題です。

register.php

<script src="js/click.js"></script> 

<form action="click.js" method="post"> 

    <label for="first_name">First Name:</label> 
    <input type="text" id="first_name" name="first_name" /><br> 

    <label for="last_name" >Last Name:</label> 
    <input type="text" id="last_name" name="last_name" /><br> 

    <label for="username">Username:</label> 
    <input type="text" id="username" name="username" /><br> 

    <label for="password">Password:</label> 
    <input type="text" id="password" name="password" /><br> 

    <label for="email">Email:</label> 
    <input type="email" id="email" name="email" /><br> 

    <button type="submit" id="reg-submit" name="submit">Submit</button> 

</form> 

click.js

$(document).ready(function(){ 

    $('#reg-submit').click(function() { 
    var firstName = $('#first_name').val(); 
    var lastName = $('#last_name').val(); 
    var userName = $('#username').val(); 
    var password = $('#password').val(); 
    var email = $('#email').val(); 
    var dataString = 'name1=' + firstName + '&lastname1=' + lastName + '&user1=' + userName + '&password1=' + password + '&email1=' + email; 

    if (firstName == "" || lastName == "" || userName == "" || password == "" || email == "") { 
     alert('missing some information'); 
    } else { 
     $.ajax({ 
      type: "POST", 
      url: "usersubmit.php", 
      data: dataString, 
      cache: false, 
      success: function(){ 
      $('#main-content').load('php/next-page.php').hide().fadeIn('slow');     
      } 
     }); 
     }; 
    return false; 
    }); 
}); 

は、DB接続がusers_db.php内で行われます。

usersubmit.php

<?php 

    include 'users_db.php'; 

    $first1=$_POST['name1']; 
    $last1=$_POST['lastname1']; 
    $username1=$_POST['user1']; 
    $pass1=$_POST['password1']; 
    $email01=$_POST['email1']; 

    $userinfo = $conn->prepare("INSERT INTO registered_users (FirstName, LastName, Username, Password, Email) VALUES ('$first1', '$last1', '$username1'', '$pass1', '$email01')"); 

    $userinfo->execute(); 


    $conn = null; 
?> 

に感謝します!

フォームの外に他の問題がある場合は、送信しないようにしてください。自由に指摘してください。 `form.serialize()`:

+2

なぜ単純に仮定していますか? – Tyr

+0

phpファイル... 'print_r($ _ POST);'はその上にあるfirebugまたは同等のものを使って表示します。 –

+0

また、 '$ username'の近くのSQL文に構文エラーがあります。 – Tyr

答えて

2

答えはそれはあなたが書類を作成する方法はないです:)

<?php 

    include 'users_db.php'; 

    $first1=$_POST['name1']; 
    $last1=$_POST['lastname1']; 
    $username1=$_POST['user1']; 
    $pass1=$_POST['password1']; 
    $email01=$_POST['email1']; 

    $userinfo = $conn->prepare("INSERT INTO registered_users (FirstName, LastName, Username, Password, Email) VALUES (?, ?, ?, ?, ?)"); 
    $userinfo->bind_param("sssss",$first1,$last1,$username1,$pass1,$email01); 

    $userinfo->execute(); 

    // you shoud close the prep statement object 
    $userinfo->close(); 
    //this is the way to kill the conn 
    $conn->close(); 
?> 

これは、データベースへの接続が機能:)

関連する問題