В моем предыдущем посте говорилось о том, насколько важна для меня проверка формы. Итак, вот статья, в которой рассказывается о одном способе проверки моих собственных форм. Вот демо. Излишне говорить, что есть так много способов сделать это, и, честно говоря, способов лучше, чем этот, но я воспользуюсь этой возможностью, чтобы заархивировать здесь, как контактная форма проверяется на моем личном веб-сайте.
Сама форма (HTML)
Вот простая контактная форма, в которой запрашивается ваше имя, адрес электронной почты и сообщение. Цель состоит в том, чтобы убедиться, что 1) все поля ввода заполнены и 2) введенный адрес электронной почты является действительным адресом электронной почты.
Для того, чтобы мой код был коротким для этого поста, я удалил <h1>
text, div-оболочки и <label>
, которые присутствовали в моей демонстрации. Самый необходимый минимум формы указан ниже.
Клиентский скрипт (JavaScript)
При отправке формы я использую jQuery для запуска функции, которая выполняет следующие действия: 1) Предотвращает поведение формы по умолчанию. 2) Сохраните все значения полей ввода в переменных. 3) Используя Ajax-метод load (), передайте эти переменные в сценарий PHP с именем form-send.php (на сервере). Важно отметить, что здесь происходит на самом деле. Метод load () загружает данные с сервера. Эти данные состоят из возвращенных данных и печатаются в выбранном элементе <div class="form-result"></div>
. Простите меня за отсутствие лучшего объяснения ...
Серверный скрипт (PHP)
Я использую PHP, чтобы проверить, установлен ли метод публикации (isset($_POST["submit"])
, что всегда должно приводить к значению true и следующему утверждению, потому что я явно дал кнопке значение в HTML. <button type=”submit” value=”submit” class=”form-submit”>Submit</button>
Затем PHP берет данные из объекта, переданного в методе load (), и помещает их в переменные. Следующие ниже операторы if / else проверяют, есть ли во всех трех полях ввода значения и действителен ли адрес электронной почты. Для этого используются встроенные методы PHP, такие как empty()
и filter_var()
. Если условия не выполняются, сервер вернет строку HTML-элемента с именем класса result-error
. Эти возвращенные данные затем отображаются на странице внутри выбранного элемента <div class="form-result"></div>
.
Если значения существуют и адрес электронной почты подтвержден, я обычно хочу, чтобы содержимое формы отправлялось на мой личный адрес электронной почты, но в этом примере я просто возвращаю сообщение об успешном выполнении с именем класса results-success
. Если вы хотите, чтобы ваш сервер отправлял вам электронное письмо с помощью mail (), код приведен ниже. Я включаю его прямо перед тем, как повторить сообщение об успехе.
$recipient = "[email protected]"; // Your email address here $subject = "Contact Form Inquiry"; $headers = "From " . $email; $text = "Email from: " . $name . "\n\n" . "Email Address: " . $email . "\n\n" . "Message: " . $message; mail($recipient, $subject, $text, $headers);
Последняя вещь. Внутри моего PHP-скрипта у меня есть код JavaScript, который обрабатывает добавление и удаление стилей проверки формы.
Актуальные стили
И последнее. Я не включил все стили, которые я использовал для своей формы примера, но вот три, которые используются в моих скриптах, которые визуально важны для функциональности форм.
.input-error { border: 1px solid red; } .result-error { color: red; } .result-success { color: blue; }
И последнее, последнее. Определенно есть другие, более эффективные и безопасные способы сделать это. Но вот один способ, который успешно и безопасно сработал для моих масштабных проектов. В заключение, я также экспериментировал с проверкой формы интерфейса с использованием псевдоклассов CSS на CodePen, и я планирую написать об этом в ближайшее время!