私は、このコードを組み込んで、詳細が与えられた後にユーザーを登録できるようにしています。すべての詳細がデータベースに挿入され、新しいページがロードされます。すべて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()`:
なぜ単純に仮定していますか? – Tyr
phpファイル... 'print_r($ _ POST);'はその上にあるfirebugまたは同等のものを使って表示します。 –
また、 '$ username'の近くのSQL文に構文エラーがあります。 – Tyr