Задать вопрос
@B1oomEe

Почему не выполняется условие в JavaScript?

Делаю систему регистрации на страничке при помощи php и ajax, и в момент того как код должен проверять форму на ошибки он этого не делает, хотя должен. Вот код js:
$(document).ready(function() {
            $('#form_reg').submit(function(e) {
                e.preventDefault();
                $.ajax({
                    type: "POST",
                    url: "handle_reg.php",
                    data: $(this).serialize(),
                    success: function (result) {
                        if (result == "username-error") { 
                            console.log('username-error'); // здесь код отказывается выполнять т.к. считает, что условие неверно
                        };
                        if (result == "email-error") {
                            console.log('email-error');
                        };
                        if (result == "passwords-error") {
                            console.log("passwords-error");
                        };
                        if (result == "qwerty") {
                            console.log(result);
                            document.getElementById('sign-up-over-modal').classList.remove('visible4');
                            document.getElementById('sign-up-over-modal').classList.add('unvisible');
                            document.getElementById('email-overlay-2').classList.add('gathered');
                            document.getElementById('email-overlay-2').getAttribute(required);
                        };
                        console.log(result);
                    },
                });
            });
        });

Вот код php:
if (mysqli_num_rows($count_username) == 1){
    echo 'username-error';
} elseif (mysqli_num_rows($count_email) == 1){
    echo 'email-error';
} elseif ($pass != $c_pass){
    echo 'passwords-error';
} elseif (mysqli_num_rows($count_username) == 0 and mysqli_num_rows($count_email) == 0 and $pass == $c_pass) {
    echo 'qwerty';
};

И суть в том что не срабатывают именно условия, т.е. если после них поставить console.log(result), то консоль выведет то значение (username-error / email-error / passwords-error / qwerty), при котором должно сработать хотя бы одно условие.
  • Вопрос задан
  • 346 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Так напишите console.log(result == "username-error");, и увидите результат этой проверки. И лучше делать console.dir(result);, тогда будет видна настоящая структура result, может там вообще массив сидит...
Ответ написан
Комментировать
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Не понимаю, что сложного в том, чтобы зайти в документацию. И увидеть там
dataType
Type: String
The type of data expected from the server. Default: Intelligent Guess (xml, json, script, text, html).

То есть мало того что у нас древнее и никому не нужное жквери, так оно ещё и играет в угадайку.

Вместо которой надо явно написать, в каком формате мы данные ожидаем.

Плюс из пхп лучше не плеваться непонятными словами, а отправлять в нормальном формате, например json.

Ну и PHP код - это конечно, ужас.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 10:44
130000 руб./за проект
18 дек. 2024, в 10:02
7000 руб./за проект
18 дек. 2024, в 09:56
8000 руб./за проект