Как правильно составить условие проверки валидности?

<form action="BD.php" method="POST">
<p>Логин:</p><input type="text" name="login">
<p>Пароль:</p><input type="password" name="password">
</form>
<div id="error" style="display: none;"><p>Ошибка логина или пароля!</p></div>
<div id="okno-cap" style="display: none;"><input type="text" name="kod"></div>


Есть такой код. Как можно реализовать такое: При вводе логина и пароля, они проверяются в БД. Ответ из БД будет получатся в переменную $check; Ответ может содержать 2 значения: значение 1 (правильные данные) и значение 0 (ошибка). И так, эти ответы я получаю на PHP и конечно же как их перевести в JS я знаю:

var logpass = "<?echo $check;?>";
Так вот как теперь мне сделать так, чтобы при значении 1 в переменной logpass, стиль div-а с идентификатором okno-cap менялся display:none; на position: fixed; z-index: 1000; max-width: 1419px; left: 466px; top: 21px; и так же при значении 0 в переменной logpass, div-а с идентификатором error менялся display:none; на color: rgb(204, 51, 0);.

Дополнительный вопрос: У меня получается 2 файла index.php с кодом HTML выше и немного с кодом JS. и файл BD.php где обработчик формы. Понимаете ли, как то я не правильно делаю структуру, так как такое вроде делается без перезагрузки страницы. То есть мне как то надо сделать, чтоб данные отправлялись в BD.php, и возвращали ответ уже в JS переменную без перезагрузки страницы. Я так думаю это надо Ajax наверно. Если можно, подскажите как это сделать правильно. Буду искренне благодарен.
  • Вопрос задан
  • 192 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Yan-s
При вводе логина и пароля, они проверяются в БД

Они должны проверятся не в БД, а в обработчике запроса, PHP в вашем случае.

У меня получается 2 файла index.php с кодом HTML выше и немного с кодом JS. и файл BD.php где обработчик формы.

PHP должен быть максимально отделен от JS и HTML. Читайте про MVC. Весь код разметки и отображения должен быть вынесен в отдельные файлы, в которых PHP используется только отображения данных и реализуют простейшую логику связанную с этим.

При этом точка входа должна быть одна - все запросы должны приходить на один php файл. Остальные подключаются при помощи автозагрузки. Код которому будет делегирован запрос определяется при помощи роутинга.

Я так думаю это надо Ajax наверно.

Правильно думаете. Запрос отправляется при помощи JS, далее PHP обрабатывает этот запрос и возвращает ответ с результатом проверки, JS обрабатывает ответ и меняет класс HTML элемента.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы