Я пытаюсь сделать проверку полей на пустоту без обновления страницы - c помощью AJAX. Но мне говорит, что переменные для вывода ошибок не определены, хотя они в обработчике формы определены. Почему так? HTML: <form method="POST" id="registration" action="registration.php"> <input type="text" name="login" placeholder="Логин"> <div class="error"><?php echo($loginErr)?></div> <input type="text" name="password" placeholder="Пароль"> <div class="error"><?php echo($passwordErr)?></div> <input type="text" name="email" placeholder="Email"> <div class="error"><?php echo($emailErr)?></div> <input type="submit" value="Зарегистрироваться" id="insert"> </form> Код (CSS): input { padding: 4px; margin: 5px; } Код (Javascript): $(document).ready(function(){ let form = $('.registration'); form.submit(function(e) { e.preventDefault(); $.ajax({ url: form.attr('registration.php'), type: form.attr('POST'), dataType: 'html', data: form.serialize(), success: function(result) { $('#error').html(result); } }); }); }); PHP: <?php $loginErr = $passwordErr = $emailErr = ""; if(empty($_POST["login"])) { $loginErr = "Поле не может быть пустым"; } if(empty($_POST["password"])) { $passwordErr = "Поле не может быть пустым"; } if(empty($_POST["email"])) { $emailErr = "Поле не может быть пустым"; } ?>
http://htmlbook.ru/html/input/required HTML: <input type="text" name="login" required placeholder="Логин">
Правильно говорит, вы в Аякс обработчике проверки делаете, каким то переменным значения присваивание и все.... Никуда не передаёте. Нужно результаты то в js отдать, Код (Javascript): $arr = ['err1' => $EmailErr]:// итд echo json_decode($arr)