jQuery AJAX проверяет, существует ли электронная почта в базе данных, не работает по какой-либо причине

#javascript #php #jquery #mysql #ajax

#javascript #php #jquery #mysql #ajax

Вопрос:

Я пытаюсь использовать jQuery, AJAX, PHP и MySQL, чтобы проверить, существует ли электронное письмо, введенное в форму, в базе данных. Это мой текущий код jQuery :

 $.post('check-email.php', {'suEmail' : $suEmail}, function(data) {
  if(data=='exists') {
    validForm = false;
    $suRememberMeCheckbox.css('top', '70px');
    $suRememberMeText.css('top', '68px');
    $signUpSubmit.css('top', '102px');
    $tosppText.css('top', '115px');
    $suBox.css('height', '405px');
    $suBox.css('top', '36%');
    $errorText.text('The email has been taken.');
    return false;
  };
});
 

И это мой PHP-код:

 <?php include("dbconnect.php") ?>
  <?php
    $sql = "SELECT email FROM users WHERE email = '" .$_POST['suEmail'] . "'";
    $select = mysqli_query($connection, $sql);

    if (mysqli_num_rows($select) > 0) {
      echo "exists";
    }
?>
 

Когда я просматриваю форму регистрации, когда я использую электронное письмо, уже имеющееся в базе данных, текст ошибки никогда не меняется на то, что я указал, а вместо этого на некоторые другие случаи ошибок, которые я закодировал. Почему это не работает! Большое спасибо!

Комментарии:

1. В чем ошибки?

2. Какую ошибку она показывает?

3. Поставьте оповещение или консоль. войдите и проверьте значение «данные»

4. Хорошо, я только что добавил консоль. регистрируйте значение данных. Когда я меняю echo на что-то другое, кроме «exists», например «exist», он регистрирует «exist» на консоли. Однако, когда я сохраняю echo как «существует», на консоль ничего не записывается. Большое спасибо!

5. Вы изменили exists код jquery, когда изменили значение exists to exist в php? Действительно ли необходимо использовать точку с запятой после }; в jquery if statement ?

Ответ №1:

В ответе могут быть дополнительные пробелы

Попробуйте:

 if(data.trim()=='exists') {
 

Комментарии:

1. Я только что добавил, что, однако, форма по-прежнему переходит на страницу успеха вместо отображения ошибки. Большое спасибо!

2. обратите внимание, что вы не можете использовать return false; в этом обратном вызове, чтобы предотвратить отправку формы, если это то, что вы делаете. Ajax является асинхронным