Когда я отправляю свою регистрационную форму, jQuery отправляет ее в register.php, который затем возвращает данные JSON для используемого jQuery.Запрос AJAX успешно, но данные не могут быть использованы
Все работает нормально - пользователь регистрируется. Регистр.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