AJAXを使用して簡単なボタンロードを作成しようとしています。しかし、私が応答を送るたびに、ウィンドウは単に成功関数を実行する代わりにそれを表示します。AJAXがphpからレスポンスを受け取らず、代わりにレスポンスが出力されます。
私のコードは次のとおりです。(編集して、コード全体を投稿しないと申し訳ありません)
$(document).ready(function(){
$("#register-form").validate({
rules:{
email: {
required: true
},
},
submitHandler: submitRegister
});
function submitRegister(){
var data = $("#register-form").serialize();
$.ajax({
type: 'POST',
url: 'signupinc.php',
data: data,
beforeSend: function() {
$("#error").fadeOut();
$("#register").html('Sending ...');
},
success : function(response) {
if(response==1){
$("#error").fadeIn(1000, function(){
$("#error").html('<div class="alert alert-danger"> Please input valid credentials!</div>');
$("#register").html(' Create Account');
});
}
else if(response=="registered"){
$("#register").html(' Signing Up ...');
}
}
});
return false;
}
});ここで
は私のsignupinc.php
ファイルのコードです:
<?php
require 'db.php';
if(isset($_POST['register'])){
$fname =$mysqli->escape_string($_POST['fname']);
$lname = $mysqli->escape_string($_POST['lname']);
$email = $mysqli->escape_string($_POST['email']);
$password = $mysqli->escape_string($_POST['pass']);
$hash = $mysqli->escape_string(md5(rand(0,1000)));
$emailstmt = $mysqli->prepare('SELECT * FROM users WHERE email=?') or die($mysqli->error());
$emailstmt->bind_param('s', $email);
$emailstmt->execute();
$emailstmt->store_result();
$emailCheck = $emailstmt->num_rows;
if($emailCheck > 0){
echo "1";
}
else{
$hashedpassword = password_hash($password, PASSWORD_DEFAULT);
$successstmt = $mysqli->prepare('INSERT INTO users (fname, lname, email, password, hash)
VALUES (?,?,?,?,?);');
$successstmt->bind_param('sssss', $fname, $lname, $email, $hashedpassword, $hash);
$successstmt->execute();
echo "2";
}
}
そしてまた、ここでのスクリーンショットです。
を呼び出す必要がありますボタンをクリックすると、phpページにリダイレクトされるajax呼び出しの? –
ブラウザのURLから呼び出すことはできません。それはAjax関数を介して行う必要があります。あなたのコンソールには数字「1」が表示されるはずです – Akintunde007
はい、私はページにリダイレクトされます。 –