當我提交我的註冊表單時,jQuery將它發送到register.php,然後返回JSON數據供jQuery使用。AJAX請求成功但沒有數據可以使用
一切工作正常 - 用戶獲得註冊。 register.php在網絡響應標籤中返回{"tulemus":"olemas"}
。
這裏的問題是,儘管register.php
返回的數據應該是這樣的,但它不會被髮送到function(data)
。我甚至試着做console.log(data)
,並沒有在控制檯中顯示出來,儘管在網絡標籤中,我可以看到.php文件成功返回數據。
Register.php:
<?php
if(isset($_POST['username'])){
include_once 'db_connect.php';
$username = $_POST['username'];
$password = $_POST['password'];
$passwordconfirm = $_POST['passwordconfirm'];
if($password == $passwordconfirm) {
$email = $_POST['email'];
$turvakysimus = $_POST['turvakysimus'];
$turvavastus = $_POST['turvavastus'];
$sql = "SELECT username FROM kasutajad WHERE username = :username";
$query = $pdo->prepare($sql);
$query->bindValue(':username', $username);
$query->execute();
$query->fetch(PDO::FETCH_ASSOC);
if($query->rowCount()){
echo json_encode(array("tulemus"=>"olemas"));
} else {
if($user->register($username, $password, $email, $turvakysimus, $turvavastus)) {
echo json_encode(array("tulemus"=>"loodud"));
}
}
} else {
echo json_encode(array("tulemus"=>"nomatch"));
}
}
?>
而jQuery的:
$(function(){
$("form").submit(function() {
event.preventDefault();
var username = $('#username').val();
var password = $('#password').val();
var passwordconfirm = $('#password_confirm').val();
var email = $('#email').val();
var turvakysimus = $('#turvakysimus').val();
var turvavastus = $('#turvavastus').val();
$.post("register.php",
{
username: username,
password: password,
passwordconfirm: passwordconfirm,
email: email,
turvakysimus: turvakysimus,
turvavastus: turvavastus
},
function(data)
{
if(data.tulemus == 'olemas') {
$("#resultDiv").hide().html('<div class="alert alert-danger" style="margin-top:25px;"> <strong>Viga!</strong> Sellise nimega kasutaja juba eksisteerib.</div>').fadeIn(1000);
} else if (data.tulemus == 'loodud'){
$("#resultDiv").hide().html('<div class="alert alert-success" style="margin-top:25px;"> <strong>Kasutaja loodud!</strong> Võite nüüd sisse logida.</div>').fadeIn(1000);
} else if (data.tulemus == 'nomatch'){
$("#resultDiv").hide().html('<div class="alert alert-danger" style="margin-top:25px;"> <strong>Viga!</strong> Teie sisestatud paroolid on erinevad.</div>').fadeIn(1000);
}
}, "json");
});
});
你得到任何錯誤。你能查看瀏覽器的控制檯嗎? – vijayP
瀏覽器控制檯中沒有任何內容,並且在「網絡」選項卡中,您可以看到''php'''腳本正在返回JSON數據:https://gyazo.com/0660e396ac613ff15faadab4ca619707由於某種原因,jQuery沒有收到該信息。 – fidtal
似乎在JSON前加了一個'•'字符,並在該屏幕截圖中使其無效。 – Quentin