Библиотека для AJAX - Axios.
-------------------------------------
Собсна проблема: при отправке формы должна пройти проверка существования пользователя в базе данных через ajax,
проблема заключается в том что без async await происходит проверка, и даже если пользователя не существует то регистрация(переход на страницу регистрации) не происходит, ну вроде понятно почему, асинхронные функции, все дела.
В случае использования async await происходит проверка существования пользователя в БД, происходит вывод сообщения (alert) о том что пользователь уже существует, но после закрытия окна alert происходит регистрация пользователя несмотря на то что он существует :/. Если выводить не окно alert а текстовое сообщение в каком нибудь теге p то произойдет то же самое.
--------------------------------------------
P.S Скрипт (на PHP) проверки существования пользователя на сервере работает правильно
--------------------------------------------
Форма
<form action="/user/register" method="POST" onsubmit="return checkForm()">
<input type="text" name="name" placeholder="Имя, фамилия">
<input type="email" id="regEmail" name="email" placeholder="E-mail">
<input type="password" name="pass" placeholder="Пароль">
<input type="submit" name="subReg" value="Зарегестрироваться" >
</form>
Скрипт проверки существования пользователя, правильности пароля и в общем, проверки формы.
//общая проверка форма
function checkForm() {
var parol = checkParol(2);
var email = checkEmailExist();
if(parol == true) //если пароль правилен то проверяем почту
if(email==true) //если почта правильна, т.е пользователь не существует, то возвращается true и форма отправляется
return true;
return false; //иначе false и форма не отправляется
}
//проверка существования пользователя в БД
function checkEmailExist() {
//получаем почту
var email = document.getElementById("regEmail").value;
//Отправляем запрос на сервер и проверяем существует ли юзверь
var isExist = axios.post('ajax/checkEmailExist/'+email)
.then(function (response) {
console.log(response);
return response.data;
})
.catch(function (error) {
console.log(error);
});
console.log(isExist);
if (isExist==true) {
alert("Пользователь уже существует");
return false;
} else {
return true;
}
}
//простая проверка пароля
function checkParol($num) {
var parol = document.getElementsByName("pass")[$num-1].value;
console.log(parol);
if (parol.length <= 6)
{
alert("Пароль должен быть не короче 6 символов");
return false;
}
return true;
//return checkEmailExist();
}