Делаю простую форму регистрации, отправляю данные с помощью ajax в php обработчик. php обработчик проверят на уже существующие данные (login и email) и записывает данные в бд или выдает ошибку если данные в бд уже есть.
Ajax все отправляет и php обработчик все проверяет и записывает в бд, но ответ получить в success не получается.
Пробовал через json, но не получается.
Как я думаю function (data) не получает параметры с php обработчика, но почему?
Форма
<form class="col s12" id="form">
<div class="row">
<div class="input-field row s6">
<i class="material-icons prefix">person</i>
<input id="icon_name" name="name" type="text" class="validate">
<label id="icon_name_error" for="icon_name">Name</label>
<span class="helper-text"><label id="icon_name-error" class="error" for="icon_name"></label></span>
</div>
<div class="input-field row s6">
<i class="material-icons prefix">account_circle</i>
<input id="icon_login" name="login" type="text" class="validate">
<label id="icon_login_error" for="icon_login">Login</label>
<span class="helper-text"><label id="icon_login-error" class="error" for="icon_login"></label></span>
</div>
<div class="input-field row s6">
<i class="material-icons prefix">markunread</i>
<input id="icon_email" name="email" type="email" class="validate">
<label id="icon_email_error" for="icon_email">Email</label>
<span class="helper-text"><label id="icon_email-error" class="error" for="icon_email"></label></span>
</div>
<div class="input-field row s6">
<i class="material-icons prefix">lock</i>
<input id="icon_password" name="password" type="password" class="validate">
<label id="icon_password_error" for="icon_password">Password</label>
<span class="helper-text"><label id="icon_password_error" class="error" for="icon_password"></label></span>
</div>
<div class="input-field row s6">
<i class="material-icons prefix">lock_outline</i>
<input id="icon_r_password" name="r_password" type="password" class="validate">
<label id="icon_r_password_error" for="icon_r_password">Repeat password</label>
<span class="helper-text"><label id="icon_r_password-error" class="error" for="icon_r_password"></label></span>
</div>
</div>
<div class="right-align">
<button class="btn waves-effect waves-light btn-large" id="submit" type="submit" name="reg_submit">Регистрация
<i class="material-icons right">send</i>
</button>
</div>
</form>
Ajax
$("form").submit(function(){
if($("#form").valid()){
$.ajax({
type: "POST",
url: "aith_registration.php",
data: $(this).serialize(),
success : function(data) {
if (data[0]) {
M.toast({html: 'Поздравляю, вы зарегистрировались!'});
} else {
M.toast({html: 'Данные уже существуют!'});
}
},
dataType: 'json'
});
return false;
}
});
PHP обработчик
<?php
include("connection_info.php");
$link = mysqli_connect(con_localhost, con_user, con_password, con_db);
$name = mysqli_real_escape_string($link, trim($_POST['name']));
$login = mysqli_real_escape_string($link, trim($_POST['login']));
$email = mysqli_real_escape_string($link, trim($_POST['email']));
$password = mysqli_real_escape_string($link, trim($_POST['password']));
$r_password = mysqli_real_escape_string($link, trim($_POST['r_password']));
$errors = array();
$query_login = "SELECT * FROM `users` WHERE login = '$login'";
$data_login = mysqli_query($link, $query_login);
if (mysqli_num_rows($data_login) != 0) {
$errors[] = 'Пользователь с таким логином уже существует!';
}
$query_email = "SELECT * FROM `users` WHERE email = '$email'";
$data_email = mysqli_query($link, $query_email);
if (mysqli_num_rows($data_email) != 0) {
$errors[] = 'Пользователь с таким email уже существует!';
}
if (empty($errors)) {
$query = "INSERT INTO `users` (name, login, email, password) VALUES ('$name', '$login', '$email', '$password')";
mysqli_query($link, $query);
mysqli_close($link);
$success = true;
echo json_encode(array($success, $login)); //отправить ответ Ajax
exit();
} else {
$success = false;
echo json_encode(array($success, $login)); //отправить ответ Ajax
exit();
}
?>