php контактная форма, две кнопки отправки
Возможный Дубликат:
одни и те же данные формы, различные действия на двух отдельных кнопках
отправки форма загрузки в контактной форме, форма загрузки отправить продолжает отправлять всю форму
У меня есть раздел загрузки файлов в контактной форме php, кнопка отправки для загрузки файла, вместо этого отправляет форму. как я могу отличить две кнопки отправки?
В основном это две формы POST, файл загружается один в контактную форму php.
php html formsПоделиться Источник Alexand657 24 января 2013 в 02:25
2 ответа
- Одна форма две кнопки отправки
У меня есть две похожие формы на сайте, которые я хотел бы объединить в одну форму с двумя кнопками отправки. Они используют большую часть одних и тех же данных. Первая форма использует GET для отправки данных на другой сервер. Вторая форма отправляет его в email. Я хотел бы настоятельно…
- Контактная форма php, js и jquery вопросы
Моя контактная форма не работает, и я вообще не могу найти ошибку. У меня есть contact-us.php и sendmail.php и custom.js Контакт-us.php, имеет включенный вызов на sendmail.php. Кроме того, честно говоря, я включил этот скрипт, расположенный по адресу js / jquery.min.js, но не уверен, что он связан…
3
Просто дайте каждому имя:
<input type="submit" name="submit1" value="Submit 1">
<input type="submit" name="submit2" value="Submit 2">
if (isset($_POST['submit1'])) {
// submit 1 pressed
}
else if (isset($_POST['submit2'])) {
// submit 1 pressed
}
Поделиться John Conde 24 января 2013 в 02:26
2
Пример Формы:
<form method="post">
<input type="submit" name="submit1" value="Button1">
<input type="submit" name="submit2" value="button2">
</form>
Затем работайте с сервером name=""
на стороне. .
<?php
if (isset($_POST['submit1']))
{
echo "Button1 Is Set <br>";
}
if (isset($_POST['submit2']))
{
echo "Button2 Is Set <br>";
}
?>
Поделиться Daryl Gill 24 января 2013 в 02:28
Похожие вопросы:
PHP Контактная Форма
Моя контактная форма работает нормально, но когда вы нажимаете кнопку Отправить, она загружает файл PHP. <form name=contactform method=post action=send_form_email.php> А это кнопка Отправить:…
Две кнопки изображения или две отправки
Я разработчик .NET, почти отказывающийся от личного проекта с использованием PHP. Мне нужна следующая страница PHP: Форма с двумя случайными изображениями (идентифицируемыми кодом), где пользователь…
Две кнопки отправки в одной форме
У меня есть форма, в которой есть пять (5) элементов управления вводом файлов наряду с другими элементами управления. Эта форма также имеет две (2) кнопки отправки. Я использовал плагин проверки…
Одна форма две кнопки отправки
У меня есть две похожие формы на сайте, которые я хотел бы объединить в одну форму с двумя кнопками отправки. Они используют большую часть одних и тех же данных. Первая форма использует GET для…
Контактная форма php, js и jquery вопросы
Моя контактная форма не работает, и я вообще не могу найти ошибку. У меня есть contact-us.php и sendmail.php и custom.js Контакт-us.php, имеет включенный вызов на sendmail.php. Кроме того, честно…
контактная форма php справка
Хорошо, у меня есть наша контактная форма, полностью работающая и обрабатываемая правильно. У меня есть два вопроса … на странице контактной формы я хочу добавить checkbox для галочки…
Форма должна обрабатывать две кнопки отправки в PHP
В моем HTML у меня есть форма, где пользователи могут зарегистрироваться или войти в систему. Проблема в том, что кнопки регистрации и входа находятся в одной и той же форме, и они обрабатываются…
Jquery контактная форма скрывается после отправки
У меня есть контактная форма, которая скрыта при загрузке страницы. Затем контактную форму можно просмотреть, нажав кнопку контактная форма, в результате чего она будет slideUp и slideDown. Проблема…
Контактная форма javascript верификация переиграла
Контактная форма отправить позиционирование кнопки
Это мой сайт: http://cvkj.agencialosnavegantes.cl / У меня есть контактная форма в нижней части страницы, и я пытаюсь поместить кнопку отправки рядом с текстовым полем, но мне очень трудно. Это мой…
PHP | Отправка форм. POST-запросы
Отправка форм
Последнее обновление: 15.03.2021
Одним из основных способов передачи данных веб-сайту является обработка форм. Формы представляют специальные элементы разметки HTML, которые содержат в себе различные элементы ввода — текстовые поля, кнопки и т.д. И с помощью данных форм мы можем ввести некоторые данные и отправить их на сервер. А сервер уже обрабатывает эти данные.
Создание форм состоит из следующих аспектов:
Создание элемента
<form><form>
в разметке HTMLДобавление в этот элемент одно или несколько поле ввода
Установка метода передачи данных. Чаще всего используются методы
GET
илиPOST
Установка адреса, на который будут отправляться введенные данные
POST-запросы
Итак, создадим новую форму. Для этого определим новый файл form.php, в которое поместим следующее содержимое:
<!DOCTYPE html> <html> <head> <title>METANIT. COM</title> <meta charset="utf-8" /> </head> <body> <h4>Форма ввода данных</h4> <form action="user.php" method="POST"> <p>Имя: <input type="text" name="name" /></p> <p>Возраст: <input type="number" name="age" /></p> <input type="submit" value="Отправить"> </form> </body> </html>
Атрибут action="user.php"
элемента form
указывает, что данные формы будет обрабатывать скрипт user.php,
который будет находиться с файлом form.php
в одной папке. А атрибут method="POST"
указывает, что в качестве метода передачи данных будет применяться метод POST.
Теперь определим файл user.php
, который будет иметь следующее содержание:
<?php $name = "не определено"; $age = "не определен"; if(isset($_POST["name"])){ $name = $_POST["name"]; } if(isset($_POST["age"])){ $age = $_POST["age"]; } echo "Имя: $name <br> Возраст: $age"; ?>
Для обработки запросов типа POST в PHP используется встроенная глобальная переменная $_POST.
Она представляет ассоциативный массив данных, переданных с помощью метода POST. Используя ключи, мы можем получить отправленные
значения. Ключами в этом массиве являются значения атрибутов name
у полей ввода формы.
Например, так как атрибут name
поля ввода возраста имеет значение age
(<input type="number" name="age" />
),
то в массиве $_POST
значение этого поля будет представлять ключ «age»: $_POST["age"]
И поскольку возможны ситуации, когда поле ввода будет не установлено, то в этом случае желательно перед обработкой данных проверять
их наличие с помощью функции isset(). И если переменная установлена, то функция isset() возвратит значение true
.
Теперь мы можем обратиться к скрипту form.php и ввести в форму какие-нибудь данные:
И по нажатию кнопки введенные данные методом POST будут отправлены скрипту user.php:
Необязательно отправлять данные формы другому скрипту, можно данные формы обработать в том же файле формы. Для этого изменим файл form.php следующим образом:
<!DOCTYPE html> <html> <head> <title>METANIT.COM</title> <meta charset="utf-8" /> </head> <body> <?php $name = "не определено"; $age = "не определен"; if(isset($_POST["name"])){ $name = $_POST["name"]; } if(isset($_POST["age"])){ $age = $_POST["age"]; } echo "Имя: $name <br> Возраст: $age"; ?> <h4>Форма ввода данных</h4> <form method="POST"> <p>Имя: <input type="text" name="name" /></p> <p>Возраст: <input type="number" name="age" /></p> <input type="submit" value="Отправить"> </form> </body> </html>
Поскольку в данном случае мы отправляем данные этому же скрипту — то есть по тому же адресу, то у элемента форма можно не устанавливать
атрибут action
.
Стоит отметить, что в принципе мы можем отправлять формы и запросом GET, в этом случае для получения тех же значений формы применяется массив $_GET, который был рассмотрен в прошлой теме:
<!DOCTYPE html> <html> <head> <title>METANIT.COM</title> <meta charset="utf-8" /> </head> <body> <?php $name = "не определено"; $age = "не определен"; if(isset($_GET["name"])){ $name = $_GET["name"]; } if(isset($_GET["age"])){ $age = $_GET["age"]; } echo "Имя: $name <br> Возраст: $age"; ?> <h4>Форма ввода данных</h4> <form method="GET"> <p>Имя: <input type="text" name="name" /></p> <p>Возраст: <input type="number" name="age" /></p> <input type="submit" value="Отправить"> </form> </body> </html>
Поисковые формы — Веб-разработка на PHP
Веб-разработка на PHPHTML Формы — основной инструмент для создания интерактивных сайтов. Через них происходит регистрация пользователя, добавление в друзья, оплата покупок, фильтрация товара в магазине и тому подобное. Самые простые формы — поисковые. Они ничего не изменяют и не создают, а используются только для фильтрации данных. Такой поиск реализован на Хекслете на странице поиска https://ru.hexlet.io/courses. Аналогичная строка поиска используется и в поисковых системах.
<form action="/courses" method="get">
<input type="search" required name="term">
</form>
Основной элемент формы тег <form>
. Все элементы формы должны быть вложены в него. У этого тега есть атрибут action
, в котором можно указать адрес на который отправятся данные формы (по умолчанию будет использован адрес текущей страницы). Второй часто используемый атрибут — method
. Он принимает два возможных параметра get
или post
, что соответствует HTTP методам. Напомню что семантика этих методов в том, что GET используется для чтения информации и не изменяет состояние системы, а POST неидемпотентный глагол, который используется при отправке форм изменяющих состояние системы, например, во время регистрации нового пользователя. По умолчанию значение этого атрибута get
. После отправки формы этим методом, ее данные передаются как параметры запроса. Если в форму выше ввести строчку sql и нажать Enter, то браузер откроет страницу по адресу https://ru.hexlet.io/courses?term=sql. Такой страницей можно поделиться с другими людьми и они увидят те же данные (если выдача не персонализированная).
Интересный факт. Поисковые боты (программы, индексирующие контент в интернете) распознают поисковые формы (смотрят что метод отправки GET) и пытаются их использовать для того чтобы добавить в индекс поисковых систем как можно больше данных.
Для элементов формы используются теги input, button, select и textarea.
В свою очередь тег <input>
благодаря атрибуту type
может принимать множество различных форм:
- Множественный выбор (checkbox)
- Одиночный выбор (radio)
- Кнопка отправки формы (submit)
- Поле для ввода пароля (password)
- Множество других таких как: tel, email, range и т. п.
HTML Формы
Формы предназначены для пересылки данных от пользователя к веб-серверу. Формы в HTML могут состоять из текстовых полей и текстовых областей, флажков и переключателей, а также раскрывающихся списков. Все это — элементы формы. Каждый элемент служит для того, чтобы передать какое-либо значение сайту.
По своей сути HTML-форма — это веб-страница на которой вы видите области для ввода своей информации. После того, как вы заполните форму и нажмете кнопку отправить, информация из формы упаковывается и отсылается веб-серверу для обработки серверным сценарием (файлом-обработчиком). После обработки к вам возвращается в качестве ответа другая веб-страница. Следующий рисунок наглядно демонстрирует как работает форма:
Нет ничего сложного в создании HTML-форм. Самый простой способ получить представление о формах — это разобрать небольшой HTML-код, а затем посмотреть, как он работает. В следующем примере показан синтаксис создания простой HTML-формы:
Пример: Простая HTML-форма
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Простая форма</title>
</head>
<body>
<form action="action_form.php" method="POST">
<p>Моя первая форма:<br>
Имя: <input type="text" name="firstname" value=""><br>
Фамилия: <input type="text" name="lastname" value=""><br>
<input type="submit">
</p>
</form>
</body>
</html>
Элемент
<form>Формы вставляются на веб-страницы посредством элемента <form>. Он представляет собой контейнер для всего содержимого формы, включая такие элементы, как текстовые поля и кнопки, а также любые другие теги языка HTML. Однако он не может содержать в себе другой элемент <form>.
Для отправки формы на сервер используется кнопка «Submit», того же результат получится, если нажать клавишу «Enter» в пределах формы. Если кнопка «Submit» отсутствует в форме, клавиша «Enter» может быть использована для отправки.
Большинство атрибутов элемента <form> влияют на обработку формы, а не на ее дизайн. Наиболее распространёнными из которых являются action и method. Атрибут action содержит URL, на который информация в форме будет отправлена для обработки сервером. Атрибут method является методом HTTP, который должны использовать браузеры для отправки данных формы.
Элемент
<input>Практически все поля для формы создается с помощью элемента <input> (от англ. input — ввод). Внешний вид элемента <input> меняются в зависимости от значения его атрибута type:
<input type="значение">
Вот некоторые значения атрибута type:
Значение | Описание |
---|---|
text | ввод одной строки текста |
radio | элемент-переключатель (иногда их называют радио-кнопками) |
password | текстовое поле для ввода пароля, в котором все вводимые символы заменяются звездочкой |
checkbox | поле для установки флажка, который можно установить или сбросить |
submit | кнопка, при нажатии которой происходит отправка данных, введенных в форму |
reset | кнопка, при нажатии которой вся форма очищается. Точнее сказать, все элементы формы получают значения по умолчанию |
button | обычная командная кнопка |
Ввод текста и пароля
Одним из самых простых типов элементов формы является текстовое поле, предназначенное для ввода текста из одной строки. Данный тип ввода текста установлен по умолчанию, а следовательно, именно однострочное поле отобразится, если вы забудете указать атрибут type. Для добавления однострочного поля ввода текста в форму следует внутри элемента <input> прописать атрибут type со значением text
:
<input type="text">
Поле ввода пароля является разновидностью обычного текстового поля. Оно поддерживает те же атрибуты, что и однострочное текстовое поле. Атрибут name устанавливает имя поля ввода пароля, которое будет отправлено на сервер вместе с паролем, введенным пользователем. Чтобы создать поле для ввода пароля, необходимо задать значение password
атрибуту type (password (англ.) — пароль):
<input type="password">
Пример создания формы с полем для ввода пароля:
Пример: Поле ввода пароля
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="action_form.php" method="POST">
<p>Ваш логин:
<input type="text" name="login" size="15" maxlength="30" value="Ваше имя">
</p>
<p>Пароль: <input type="password" name="password" size="15" maxlength="30">
</p>
<input type="submit">
</form>
</body>
</html>
Вместе с этим атрибутом можно использовать атрибут maxlenght, значение которого определяет максимальное количество символов, которые можно ввести в данную строку. Можно также задать длину поля ввода, используя атрибут size. По умолчанию, в большинстве браузеров ширина текстового поля ограничена 20 символами. Для управления шириной элементов новых форм, вместо атрибута size, рекомендуется использовать средства каскадных таблиц стилей (CSS).
Атрибут value задает значение, которое по умолчанию отображается в текстовом поле в момент загрузки формы. Введя в поле значение по умолчанию, можно пояснить пользователю, какие именно данные и в каком формате вы хотите, чтобы пользователь сюда занес. Это как образец, ведь пользователю гораздо удобнее заполнять форму, видя перед собой пример.
Переключатели (radio)
Элемент <input> типа radio создает переключатели, которые используют принцип логического «ИЛИ», позволяя выбрать только одно из нескольких значений: если вы выбираете одно положение, то все остальные становятся неактивными. Основной синтаксис элемента-переключателя:
<input type="radio" name="имя _переменной" value="значение">
Атрибут name для переключателей обязателен и играет важную роль в объединении нескольких элементов-переключателей в группу. Для объединения переключателей в группу необходимо установить одинаковое значение атрибута name и разное значение атрибута value. Атрибут vаluе устанавливает значение выбранного переключателя, которое будет отправлено серверу. Значение каждого элемента-переключателя должно быть уникальным внутри группы, для того, чтобы сервер знал, какой вариант ответа выбрал пользователь.
Наличие атрибута checked (с англ. — установлен) у элемента-переключателя указывает на то, какой из предлагаемых вариантов должен быть выбран по умолчанию при загрузке страницы, если это необходимо. Данный атрибут может быть установлен только у одного элемента-переключателя из группы:
Пример: Использование переключателей
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="action_form.php" method="POST">
<p>Сколько Вам лет?</p>
<ol>
<li><input type="radio" name="age" value="18" checked>младше 18</li>
<li><input type="radio" name="age" value="18-24">от 18 до 24</li>
<li><input type="radio" name="age" value="25-34">от 25 до 35</li>
<li><input type="radio" name="age" value="35-50">более 35</li>
</ol>
<input type="submit"<
</form>
</body>
</html>
Флажки (checkbox)
Элемент <input> типа checkbox создает флажки, которые напоминают переключатели тем, что дают пользователю возможность выбирать из предложенных вами вариантов. Главным отличием от переключателей является то, что посетитель может выбрать сразу несколько вариантов, а сами флажки обозначаются квадратиками, а не кружочками. Как и в случае с переключателями, группа флажков создается путем назначения каждому пункту одного и того же значения атрибута name, однако каждый флажок имеет собственное значение. Основной синтаксис флажка:
<input type="checkbox" name="имя _переменной" value="значение">
Атрибут checked, как и в случае с переключателями, указывает, что данный флажок должен быть
установлен по умолчанию при загрузке страницы. Данный атрибут может быть установлен одновременно для нескольких флажков группы.
В следующем примере использование флажков заданы несколько выбранных по умолчанию вариантов ответа:
Пример: Использование переключателей
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="action_form.php" method="POST">
<p>Какие музыкальные жанры Вы любите?</p>
<ol>
<li><input type="checkbox" name="musik" value="juze" checked>Джаз</li>
<li><input type="checkbox" name="musik" value="bluse" checked>Блюз</li>
<li><input type="checkbox" name="musik" value="rock">Рок</li>
<li><input type="checkbox" name="musik" value="shanson">Шансон</li>
<li><input type="checkbox" name="musik" value="kantry">Кантри</li>
</ol>
<input type="submit"<
</form>
</body>
</html>
Кнопки подтверждения (submit) и очистки (reset)
Элемент <input> типа submit создает кнопку, при нажатии которой происходит отправка браузером серверному сценарию на обработку данных, введенных пользователем в форму. Если создаем кнопку, очищающую форму, то присваиваем атрибуту type значение «reset»
. Элементу <input> типа submit может быть присвоен необязательный атрибут name. Атрибут vаluе используется в данном элементе для указания текста, обозначающего надпись на кнопке. По умолчанию в браузерах на кнопке пишется «Отправить» (Submit), если вас данная надпись не устраивает — введите ее самостоятельно. Поскольку в разных браузерах стили кнопок подтверждения могут отличаться, поэтому лучше самостоятельно настроить стиль кнопки, воспользовавшись средствами CSS либо использовать графические кнопки.
Создание кнопок подтверждения и очистки:
Пример: Использование submit и reset
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<form action="action_form.php" method="POST">
<p>Подпишись на рассылку новостей:</p>
<input type="text" name="email">
<input type="submit" name="podpisatsya" value="Подписаться">
<input name="reset" type="reset" value="Очистить">
</form>
</body>
</html>
Атрибут action.
Главным для элемента <form> является атрибут action, который указывает обработчик данных для формы. Обработчик данных — это файл, описывающий, что нужно делать с данными формы. В качестве результата этой обработки выдается новая HTML-страница, которая возвращается браузеру. Другими словами в атрибуте action указывается URL-путь к файлу-обработчику на сервере (иногда называемого страницей сценария) для обработки формы. Синтаксис следующий:
<form action="http://mytestserver.com/namefolder/obrabotchik.php">… </form>
Файл обработки находится на сервере mytestserver.com в папке namefolder и название серверного сценария, который будет обрабатывать данные — obrabotchik.php. Именно ему и будут переданы все данные, введенные вами в форму на веб-странице. Расширение .php
указывает на то, что указанная форма обрабатывается сценарием написанном на языке PHР. Сам обработчик может быть написан на другом языке, например это может быть язык сценариев Python, Ruby и др.
Желательно всегда задавать значение атрибута action. Если форма должна передать значения на ту же страницу, где она расположена в качестве значения атрибута action укажите пустую строку: action=»».
Атрибут method
Атрибут method задает то, каким образом информация должна быть передана на сервер. Выбор метода отправки формы зависит от данных, которые необходимо отправить вместе с ней. Здесь основную роль играет объем этих данных. Наиболее популярными являются два метода передачи исходных данных вашей формы из браузера на сервер: GET и POST. Метод устанавливается любой на выбор, и если вы его не указали, по умолчанию будет использоваться GET. Рассмотрим применение каждого из них.
Метод POST
Метод POST упаковывает данные формы и отсылает их серверу незаметно для пользователя, поскольку данные содержатся в теле сообщения. Веб-браузер, при использовании метода POST отправляет на сервер запрос, состоящий из специальных заголовков за которыми следуют данные формы. Так как содержимое этого запроса доступно только серверу, метод POST применяется для передачи конфиденциальных данных, таких как пароли, реквизиты банковских карт и другая персональная информация пользователей. Метод POST также подходит для отправки больших объемов информации, так как в отличие от метода GET, у него нет ограничений по количеству передаваемых символов.
Метод GET
Как вы уже знаете основная работа браузера — это получать веб-страницы от сервера. Так вот, когда вы используете метод GET, ваш браузер просто получает веб-страницу, как делает это всегда. Метод GET также упаковывает данные формы, но, прежде чем отправить запрос серверу, присоединяет их в конец URL-адреса. Чтобы понять, как работает метод GET, давайте посмотрим его в действии. Откройте в блокноте (например Notepad++) первый пример из этого урока (Пример: Простая HTML-форма) и внесите в HTML-код небольшое изменение:
<form action="" method="GET">
т.е. замените POST на GET.
Сохраните файл под именем file_name.html и обновите страницу браузера (F5), затем заполните форму, например Вася Пупкин, и нажмите кнопку «Отправить». В адресной строке браузера Вы увидите что-то типа этого:
...file_name.html?firstname=Вася&lastname=Пупкин
Теперь вы видите имя каждого элемента формы, а также его значение, прямо здесь, в URL-адресе.
URL-адрес отделяется от остальных данных формы символом знака вопроса, а имена и значения переменных разделяются знаком амперсанд (&).
Этот метод нужно использовать, если вы не передаете больших объемов информации.
Этот метод не подойдет, если данные в вашей форме являются конфиденциальными, например хранят номер банковской карты или пароль.
Кроме того, метод GET непригоден, если вместе с формой вы хотите переслать на сервер файлы.
Группировка элементов формы
Элементы формы, связанные по смыслу, можно сгруппировать между тегами <fieldset> и </fieldset>. Браузер отобразит <fieldset> в виде рамки вокруг группы элементов формы. Внешний вид рамки может
быть изменен с помощью каскадных таблиц стилей (CSS).
Чтобы добавить заголовок для каждой группы, понадобится элемент <legend>, который задает встраиваемый в рамку текст заголовка группы:
Пример: Использование тега <fieldset>
Задачи
Элемент HTML формы текстовое поле
Элементы html формы кнопки и текстовые поля
С помощью форм в PHP можно получать информацию с веб страниц от пользователя и обрабатывать её в PHP скрипте. С помощью форм можно организовать на веб сайте анкеты, тесты, ввод информации о пользователе(регистрационная форма) и многое другое. Разберём, как работают формы в PHP.
Чтобы создать форму на веб странице, необходимо в HTML использовать следующую конструкцию.
Синтаксис простейшей формы в HTML
<form>
Элементы формы для ввода информации
Элемент формы для отправки значений формы
</form>
Для ввода одной строки используется тип элемента HTML формы input
Синтаксис элемента HTML формы ввода строковой информации input
<input type=»text» name=»имя элемента»>
Для того чтобы данные формы были отправлены в PHP обработчик формы, используется элемент формы кнопки отправить
Синтаксис элемента HTML формы кнопки для отправки содержимого формы
<input type=»submit» name=имя кнопки value=»название кнопки»>
Обработка формы в PHP Метод GET и POST
При нажатии кнопки отправки формы в PHP обработчик передаётся содержимое формы. Существует два метода передачи информации html формы GET и POST. При использовании метода GET параметры формы передаются через URL ссылку. При использовании метода POST информация формы при передаче скрывается. Всё содержимое формы записывается в глобаный массив $_GET или $_POST. Чтобы узнать значение элемента отправленной формы, нужно записать для метода GET
$_GET[‘имя элемента формы’]
Для метода POST
$_POST[‘имя элемента формы’]
Чтобы обработать нажатие кнопки отправки формы в PHP скрипте нужно использовать следующую конструкцию для метода GET
if(isset($_GET[‘имя кнопки’]))
{
Действия, которые нужно произвести в случае нажатия кнопки
}
Для метода POST
if(isset($_POST[‘имя кнопки’]))
{
Действия, которые нужно произвести в случае нажатия кнопки
}
Для того чтобы в HTML форме указать используемый метод передачи информации необходимо в теге form в атрибуте method указать нужный метод. Для метода POST
<form method=»POST»>
Для метода GET
<form method=»GET»>
По умолчанию используется метод GET
Напишем пример простейшей формы в HTML с обработкой в PHP
Пример PHP скрипта с формой. Пользователь вводит своё имя в текстовое поле ввода, скрипт обрабатывает текстовое поле и выводит имя пользователя на веб страницу.
<?php
if(isset($_GET[‘info’]))
echo «Ваше имя — {$_GET[‘name’]}»;
?>
<form>
<input type=»text» name=»name»>
<br></br>
<input type=»submit» name=»info» value=»Отправить!»>
</form>
Разберём пример html фомы с двумя полями ввода. Через форму вводятся два числа. PHP скрипт складывает введённые числа. Мы ввели два однострочных текстовых поля с именами a и b и будем записывать значения переменных a и b.
<input type=»text» name=»a»>
<br><br>
<input type=»text» name=»b»>
В PHP обработчике формы, чтобы получить значение этих переменных, нужно обратиться к массиву $_GET, в качестве индекса массива $_GET указать имя поля формы.
$a=$_GET[‘a’];
$b=$_GET[‘b’];
Полный код простейшего калькулятора на PHP
<?php
$c;
if(isset($_GET[‘summa’])) {
$a=$_GET[‘a’];
$b=$_GET[‘b’];
$c=$a+$b;
echo $a,’+’,$b,’=’,$c;
}
?>
<form>
<input type=»text» name=»a»>
<br><br>
<input type=»text» name=»b»>
<br><br>
<input type=»submit» name=»summa» value=»Сложить!»>
</form>
Пример работы веб страницы простейшего калькулятора на PHP
Вернуться к содержанию курса по PHP Перейти к теме Флажки и переключатели в PHP >>
Полезно : Регистрация домена и размещение сайта на хостинге
Поделиться
Как определяется кнопка отправки по умолчанию в форме HTML?
Если вы отправляете форму через Javascript (то есть formElement. submit()
или что-либо эквивалентное), то ни одна из кнопок отправки не считается успешной, и ни одно из их значений не включается в отправленные данные. (Обратите внимание, что если вы отправляете форму с помощью, submitElement.click()
то отправка, на которую вы ссылались, считается активной; это не относится к сфере компетенции вашего вопроса, поскольку здесь кнопка отправки является однозначной, но я решил включить ее для людей, которые читают первую часть и задаются вопросом, как сделать кнопку отправки успешной с помощью отправки формы JS. Конечно, обработчики отправки формы все равно будут срабатывать таким образом, тогда как они не будут проходить, form.submit()
так что это еще один чайник рыбы …)
Если форма отправляется нажатием клавиши Enter, находящейся в нетекстовом поле, то пользовательский агент сам решает, что ему здесь нужно. В спецификации ничего не говорится об отправке формы с помощью клавиши ввода в поле ввода текста (если вы нажимаете на кнопку и активируете ее с помощью пробела или чего-то еще, проблем нет, поскольку эта конкретная кнопка отправки однозначно используется). Все, что он говорит, — то, что форма должна быть отправлена, когда кнопка отправки активирована, даже не требование, чтобы нажать ввод, например, текстовый ввод отправит форму.
Я считаю, что Internet Explorer выбирает кнопку отправки, которая появляется первой в источнике; У меня такое ощущение, что Firefox и Opera выбирают кнопку с самым низким tabindex, возвращаясь к первому определенному, если ничего не определено. Существуют также некоторые сложности, связанные с тем, имеют ли отправляемые атрибуты значения не по умолчанию IIRC.
Суть в том, что не существует определенного стандарта для того, что здесь происходит, и это целиком и полностью зависит от браузера — поэтому, насколько это возможно во всех ваших действиях, старайтесь избегать какого-либо конкретного поведения. Если вы действительно должны знать, вы, вероятно, можете узнать поведение различных версий браузера, но когда я исследовал это некоторое время назад, были некоторые довольно запутанные условия (которые, конечно, могут быть изменены с новыми версиями браузера), и я бы посоветовал Вы должны избежать этого, если это возможно!
Несколько форм на одной странице с отправкой без перезагрузки
Вы можете скачать готовые файлы, в которые дополнительно включена проверка введенных данных в форму (валидация), поделившись статьей в Twitter.
Представьте, что у вас на странице сайта есть несколько форм связи с различным предназначением. Лучший способ объяснить эту потребность, это создание сайта, в котором необходимо разместить форму заказа звонка, форму запроса цены, форму запроса каталога и еще какие-либо необходимые вам формы.
За пересылку письма с введенными в форму данными отвечает PHP обработчик. Для передачи данных в обработчик используется кнопка с типом submit. В случае использования нескольких форм связи с одним php обработчиком Вы должны передать в него данные именно той формы, в которой была нажата кнопка «Отправить». Это можно сделать через if/else, с учетом разных имен атрибутов, наплодив одинаковых кусков кода, можно создать кучу обработчиков с разными именами, но одинаковым кодом, а можно использовать скрипт jQuery с помощью которого данные в обработчик будут отправляться из той формы где было произведено нажатие на кнопку «Отправить».
Далее мы покажем, как реализовать на одной странице несколько форм связи, отправляющих данные без перезагрузки страницы в один обработчик.
Несколько форм связи с одним обработчиком
К примеру, возьмем три формы.
Присвойте каждой форме свой уникальный id. У нас это form1, form2 и form3. Кроме того, для стилизации формы примените классы css, для отображения подсказки включите атрибуты placeholder, а для формирования темы письма добавьте скрытый input.
Таким образом, теперь формы имеют различные идентификаторы id и мы можем написать скрипт, который будет отправлять данные в обработчик ориентируясь на id формы.
Отправка формы без перезагрузки страницы
Обычно при отправке данных из формы происходит перенаправление на страницу подтверждения. В случае использования нескольких форм на странице, это будет мешать и отвлекать клиента от вашего предложения и заполнения какого-либо другого запроса.
Используя AJAX, отправку формы без перезагрузки страницы сделать очень легко.
Форма связи в процессе заполненияПосле нажатия кнопки «Отправить» вместо полей ввода формы у вас появится сообщение об отправке.
Форма связи после нажатия кнопки «Отправить»update: При необходимости восстановления формы после отправки данных, вы можете использовать следующее решение (вставьте выделенный код в указанное место и оберните все input в форме в div с id, например inputs):
Метод .load() загружает данные и вставляет в указанный элемент.
«#parent» — id формы, в которую необходимо вставить удаленные данные.
В приведенном примере скрипта с отправкой данных форм без перезагрузки страницы, оберните в div все input. Назначьте ему id, например inputs. Этот div с вложенными полями input удаляется скриптом, на его месте появляется сообщение об отправке. Получается, что в коде остается тег form с id, этот id необходимо указать в #parent, это станет контейнером для загрузки скриптом данных формы (удаленные input).
«http://site.ru» — адрес вашей страницы с формой, откуда скрипт загрузит удаленные input. Например, если ваша форма будет находиться по адресу http://site.ru/contacts.html, вставляете этот адрес.
«#child» — id блока, который содержит input. В данном случае div #inputs.
3000 — время в мс через которое восстановится код формы.
ДемоPHP обработчик
Большинство форм для передачи данных используют метод POST, это позволяет «спрятать» данные формы и не загромождать URL в адресной строке.
Данный обработчик содержит проверку метода передачи данных.
Создавая формы на страницах своего сайта, не забывайте о внедрении проверки введенных данных и методах защиты от спама.
Возникли вопросы? Давайте обсудим их в комментариях.
ДемоКак тип ввода «Отправить» создает кнопки отправки формы в HTML »
Раскрытие информации: Ваша поддержка помогает поддерживать работу сайта! Мы зарабатываем реферальный сбор за некоторые услуги, которые мы рекомендуем на этой странице. Узнать больше- Значение
- Как определить тип ввода в HTML (все значения и атрибуты)
- Что делает
Как тип ввода создает кнопки отправки формы в HTML
? - Определяет кнопку, по которой щелкают, чтобы отправить форму.
Пример кода
Значение submit
входного
отображает кнопку «Отправить» в форме. Нажатие этой кнопки отправит данные формы.
Если вы хотите использовать изображение вместо кнопки «Отправить», используйте тип ввода изображение
.
Клэр — опытный технический писатель, редактор и энтузиаст HTML.Она пишет для HTML.com и управляет контент-агентством Red Robot Media.
Браузер Поддержка отправки
Все значения типа
Имя значения | Примечания |
---|---|
кнопка | Определяет ввод, подобный кнопке. |
флажок | Определяет флажок, который пользователь может включить или выключить. |
файл | Определяет окно загрузки файла с кнопкой обзора. |
скрыто | Определяет поле в форме, которое не видно пользователю. |
изображение | Определяет изображение, по которому щелкают, чтобы отправить форму. |
пароль | Отображает скрытое поле ввода пароля. |
радио | Определяет круглую кнопку выбора в форме. |
сброс | Определяет кнопку в форме, которая вернет всем полям значения по умолчанию. |
отправить | Определяет кнопку, которую нажимают для отправки формы. |
текст | Определяет поле ввода текста в форме. |
Все входные атрибуты
Имя атрибута | Значения | Примечания |
---|---|---|
step | Задает интервал между допустимыми значениями в числовом вводе. | |
требуется | Указывает, что поле ввода является обязательным; запрещает отправку формы и предупреждает пользователя, если обязательное поле пусто. | |
только для чтения | Запрещает пользователю редактировать значение ввода. | |
заполнитель | Задает текст-заполнитель в текстовом вводе. | |
шаблон | Задает регулярное выражение, по которому проверяется значение ввода. | |
несколько | Позволяет пользователю вводить несколько значений при загрузке файла или электронной почте. | |
мин. | Задает минимальное значение для полей ввода числа и даты. | |
макс. | Задает максимальное значение для полей ввода числа и даты. | |
список | Задает идентификатор элемента | |
высота | Задает высоту входного изображения. | |
formtarget | Задает контекст просмотра, в котором открывается ответ от сервера после отправки формы. Для использования только с типами ввода «отправить» или «изображение». | |
formmethod | Задает метод HTTP (GET или POST), который будет использоваться при отправке данных формы на сервер. Только для использования с типами ввода «отправить» или «изображение». | |
formenctype | Определяет, как данные формы должны отправляться на сервер. Только для использования с типами ввода «отправить» и «изображение». | |
formaction | Задает URL-адрес для отправки формы.Может использоваться только для type = «submit» и type = «image». | |
форма | Задает форму, которой принадлежит поле ввода. | |
автофокус | Указывает, что поле ввода должно быть в фокусе сразу после загрузки страницы. | |
accesskey | Определяет сочетание клавиш для элемента. | |
автозаполнение | Указывает, должен ли браузер пытаться автоматически завершить ввод на основе ввода данных пользователем в аналогичные поля. | |
граница | Используется для указания границы на входе. Устарело. Вместо этого используйте CSS. | |
проверено | Определяет, следует ли по умолчанию устанавливать флажок или переключатель формы ввода. | |
отключено | Отключает поле ввода. | |
maxlength | Задает максимальное количество символов, которое может быть введено в текстовый ввод. | |
язык | Используется для обозначения языка сценариев, используемого для событий, запускаемых вводом. | |
имя | Задает имя элемента ввода. Имя и значение каждого элемента ввода включаются в HTTP-запрос при отправке формы. | |
размер | Задает ширину ввода в символах. | |
src | Определяет исходный URL-адрес для ввода изображения. | |
тип | кнопка флажок файл скрыто изображение пароль радио сброс отправить текст | Определяет тип ввода. |
значение | Определяет начальное значение или выбор по умолчанию для поля ввода. |
элемент кнопки (type = submit)
Специальные атрибуты
автофокус
Логическое значение, указывающее браузеру установить фокус на этот элемент управления, когда документ завершил загрузку или когда отображается диалоговое окно
, в котором находится элемент управления. Если атрибут имеет значение «autofocus» или пустая строка («»), или если он просто присутствует, элемент управления должен получить фокус как можно скорее, после загрузки страницы или диалогового окна
.
Пример
отключен
Логическое значение, указывающее, отключен ли элемент управления. Если атрибут принимает значение «отключен» или пустую строку («»), или если он просто присутствует, элемент управления будет отключен.
Отключенные элементы управления отображаются серым цветом (если они видны), блокируются от взаимодействия с пользователем и, что более важно, их значения (если таковые имеются) не отправляются при отправке формы
.
Пример
форма
Значение атрибута id
формы, с которой связан этот элемент управления.
Этот атрибут является новым в HTML 5 и помогает определять принадлежность элементов управления во вложенных или удаленных формах.
Пример
форма действия
URI , указывающий местоположение сценария, ответственного за обработку данных, отправленных формой
.Этот сценарий обычно пишется на серверном языке, таком как ASP , PHP , Python и т. Д.
Этот атрибут является новым в HTML 5 и, если он присутствует, переопределяет атрибут action
элемента form
. Это позволяет авторам предоставить одну форму
с двумя или более кнопками, которые выполняют разные типы отправки.
Пример
formenctype
Значение, указывающее метод кодирования, который будет использоваться для данных при отправке формы. Есть три возможных значения без учета регистра:
- application / x-www-form-urlencoded : пробелы заменяются знаками «плюс» («+»), а специальные символы преобразуются в значения HEX . Это значение по умолчанию.
- multipart / form-data : кодирование не выполняется. Это значение необходимо для загрузки файлов.
- text / plain : только пробелы заменяются знаками «плюс» («+»).
Помните, что вы должны использовать значение multipart / form-data всякий раз, когда файл будет загружен в форму. Без этой конфигурации загрузка файлов завершится ошибкой.
Этот атрибут является новым в HTML 5 и, если он присутствует, переопределяет атрибут action
элемента form
.Это позволяет авторам предоставить одну форму
с двумя или более кнопками, которые выполняют разные типы отправки.
Пример
метод формы
Метод, который браузеры должны использовать для отправки данных формы.Есть три возможных значения без учета регистра:
- get : данные прикрепляются к URL-адресу запроса (указанному в атрибуте
action
). Пары имя-значение расположены в форме «имя = значение» и разделяются знаком амперсанда («&»). Вся эта строка добавляется к запросу URL , которому предшествует вопросительный знак («?»). Например, строка GET может выглядеть так: «form-result.php? User = john & pass = 123456» - пост : данные прилагаются к телу запроса.
- диалоговое окно : специфично для форм внутри элемента
диалогового окна
. Указывает браузеру закрыть диалоговое окно при отправке формы. Результаты формы должны обрабатываться скриптами.
Этот атрибут является новым в HTML 5 и, если он присутствует, переопределяет атрибут action
элемента form
. Это позволяет авторам предоставить одну форму
с двумя или более кнопками, которые выполняют разные типы отправки.
Пример
formtarget
Значение, указывающее, куда должны быть загружены результаты сценария, отвечающего за обработку данных.Это значение может быть именем контекста просмотра (например, значением атрибута name
iframe ) или любым из следующих значений (без учета регистра):
- _blank : в новом окне / вкладке.
- _parent : в непосредственном родительском контексте.
- _self : в том же контексте, который содержит форму.
- _top : в самом верхнем контексте (самый большой родительский контекст, содержащий форму).
Этот атрибут является новым в HTML 5 и, если он присутствует, переопределяет атрибут action
элемента form
. Это позволяет авторам предоставить одну форму
с двумя или более кнопками, которые выполняют разные типы отправки.
Пример
formnovalidate
Логическое значение, указывающее браузеру не проверять данные формы при отправке.Если этот атрибут принимает значение «formnovalidate» или пустую строку («»), или если он просто присутствует, браузер должен пропустить проверку формы во время отправки.
Этот атрибут является новым в HTML 5 и, если он присутствует, переопределяет атрибут action
элемента form
. Это позволяет авторам предоставить одну форму
с двумя или более кнопками, которые выполняют разные типы отправки.
Этот атрибут является частью Constraint Validation API , новой функции, которая позволяет авторам обеспечивать проверку form
с минимальным вмешательством программирования.[a-zA-Z] [a-zA-Z0-9 -_ \.] {3,15} $ "title =" Правильное имя пользователя должно начинаться с буквы, содержать буквы, цифры, оценки и остановки, а также иметь от 3 до 15 символов "требуется>
название
Имя элемента управления. Это имя будет отправлено браузером агенту обработки вместе с содержимым атрибута value
.Оба атрибута вместе будут соответствовать паре имя-значение, которая будет использоваться для обработки данных формы.
В настоящее время значение isindex
, ранее использовавшееся особым образом в некоторых браузерах и включенное в стандарт HTML , в этом атрибуте не допускается.
Пара «имя-значение» кнопки отправляется вместе с другими данными формы, только если кнопка использовалась для отправки формы.
Пример
тип
Значение, указывающее ожидаемое поведение кнопки. Существует четыре возможных значения (без учета регистра), которые будут определять действие по умолчанию, выполняемое кнопкой при ее нажатии:
- кнопка: с элементом управления не связано действие по умолчанию.Поведение кнопок этого типа обычно обеспечивается сценарием.
- сброс: элементы управления связанной формы сбрасываются до исходных значений.
- submit: связанная форма отправлена. Это глухая ценность.
- menu: контекстное меню, связанное с этой кнопкой, развернуто.
Если этот атрибут отсутствует, кнопка действует как кнопка «отправить».
Пример
значение
Значение для элемента управления.Это значение будет отправлено браузером агенту обработки вместе с содержимым атрибута name
. Оба атрибута вместе будут соответствовать паре имя-значение, которая будет использоваться для обработки данных формы.
Пара «имя-значение» кнопки отправляется вместе с другими данными формы, только если кнопка использовалась для отправки формы.
Пример
сообщений асинхронной формы с парой строк ванильного JavaScript • PQINA
В этом руководстве мы напишем крошечный обработчик событий JavaScript, который будет публиковать наши HTML-формы, используя fetch
вместо классической записи формы синхронного перенаправления.Мы создаем решение на основе стратегии прогрессивного улучшения: если JavaScript не загружается, пользователи все равно смогут отправлять наши формы, но если доступен JavaScript, отправка формы будет намного более плавной. При создании этого решения мы изучим API-интерфейсы JavaScript DOM, удобные структуры HTML и темы, связанные с специальными возможностями.
Начнем с настройки формы.
Настройка HTML
Давайте создадим форму подписки на информационный бюллетень.
В нашей форме будет необязательное поле name и поле email , которые мы помечаем как обязательные.Мы назначаем обязательный атрибут
нашему полю электронной почты, чтобы форму нельзя было опубликовать, если это поле пусто. Кроме того, мы установили тип поля email
, который запускает проверку электронной почты и показывает красивую раскладку клавиатуры электронной почты на мобильных устройствах.
Наша форма отправит сообщение для подписки .php
, которая в нашей ситуации является не чем иным, как страницей с абзацем, подтверждающим пользователю, что он подписался на рассылку новостей.
Успешная подписка!
Успешная подписка!
Давайте быстро вернемся к нашему тегу , чтобы внести небольшие улучшения.
Если наша таблица стилей каким-то образом не загружается, она в настоящее время отображается следующим образом:
Это не так уж плохо для нашей крошечной формы, но представьте, что это большая форма, и это будет довольно беспорядочно, поскольку все поля будут на одной линии. Давайте заключим каждую метку и комбинацию полей в Теперь каждое поле отображается с новой строки. Еще одним улучшением было бы заключить имена полей в элемент Незначительные усилия, приводящие к большому увеличению UX и доступности.Замечательный! Когда наша форма закончена, давайте напишем немного JavaScript. Мы напишем сценарий, который превращает все формы на странице в асинхронные. Нам не нужен доступ ко всем формам на странице, чтобы настроить это, мы можем просто прослушивать событие Чтобы предотвратить отправку классической формы, мы можем использовать метод Если вы хотите обрабатывать только одну форму, вы можете сделать это, прикрепив прослушиватель событий к этому конкретному элементу формы. Хорошо, теперь мы готовы отправить данные формы. Это действие состоит из двух частей: части отправки и части данных. Для отправки данных мы можем использовать Да, я не шучу, это просто. Первым аргументом Майкл Шарнагл предложил переместить вызов Готово! В паб! Конечно, есть кое-что, что мы забыли, в основном это был чрезвычайно счастливый поток, так что держите этих лошадей и поставьте эту пинту. Как мы справляемся с ошибками подключения? Как насчет уведомления пользователя об успешной подписке? А что происходит при запросе страницы подписки? Давайте сначала уведомим пользователя об успешной подписке на информационный бюллетень. Мы можем сделать это, вытащив сообщение на странице subscribe.php и показав его вместо элемента формы. Давайте продолжим сразу после оператора Во-первых, нам нужно превратить ответ в ответ на основе текста Теперь у нас есть HTML-документ для работы ( Если наше соединение не удается, вызов Во-первых, мы расширяем нашу HTML-форму сообщением, которое будет отображаться при сбое подключения. Давайте разместим его над кнопкой отправки, чтобы его было хорошо видно, когда что-то пойдет не так. С помощью атрибута Теперь займемся стороной JavaScript. Код, который мы помещаем в обработчик отклонения Мы выбираем наш абзац предупреждения с помощью селектора атрибутов CSS Я думаю, что наши крайние случаи покрыты, давайте немного поправим это. Было бы неплохо, если бы форма блокировала все поля ввода во время отправки на сервер.Это не позволяет пользователю нажимать кнопку отправки несколько раз, а также редактировать поля, ожидая завершения процесса. Мы можем использовать свойство Если у вас есть Теперь мы попали в неприятную ситуацию, потому что если Хотите верьте, хотите нет, но мы еще не выбрались из леса. Поскольку мы отключили все элементы, браузер переместил фокус на элемент Мы можем сохранить текущий сфокусированный элемент Я признаю, что это не несколько строк JavaScript, но, честно говоря, там много комментариев. В завершение было бы неплохо показать состояние занятости, чтобы пользователь знал, что что-то происходит. Обратите внимание, что, хотя С учетом сказанного пришло время добавить класс к нашему предупредительному сообщению (ЧЕРТ, ВЫ ПРОШЛИ МЕНЯ!). Назовем его Мы покажем состояние занятости после отправки формы и скроем его всякий раз, когда получим Когда отображается состояние занятости, вместо перемещения фокуса на форму мы перемещаем ее в состояние занятости.Это заставляет программу чтения с экрана читать его вслух, чтобы пользователь знал, что форма занята. Мы сохранили ссылки на два сообщения о состоянии в начале обработчика событий, это упрощает чтение кода в дальнейшем. Вот и все! Мы пропустили часть CSS при разработке интерфейса. Вы можете использовать CSS-фреймворк или применять свои собственные стили.Сам по себе пример должен стать отличной отправной точкой для дальнейшей настройки. И последнее. Не удаляйте контур фокуса. Мы написали семантическую структуру HTML для нашей формы, а затем построили ее для предоставления возможности асинхронной загрузки с использованием простого JavaScript. Мы позаботились о том, чтобы наша форма была доступна пользователям с клавиатурой и пользователям, использующим вспомогательные технологии, например программы чтения с экрана. И поскольку мы следовали стратегии прогрессивного улучшения, форма все равно будет работать, даже если наш JavaScript выйдет из строя. Надеюсь, мы затронули пару новых API и методологий, которые вы можете использовать. Дайте мне знать, если у вас возникнут какие-либо вопросы! Формы используются в веб-разработке для взаимодействия с пользователем. Сведения о физическом лице можно получить с помощью форм. Мы используем тег формы для создания форм в HTML. Мы можем использовать разные поля ввода для взаимодействия с пользователями. Эти поля ввода помещаются в тег HTML-формы. Элемент ввода может отображаться несколькими способами.Это зависит от атрибута типа. Это может быть текстовое поле, флажок, текстовая область и многое другое. Тег формы сам по себе имеет несколько атрибутов. Атрибут действия используется для указания места, куда будут отправлены данные формы. Атрибут метода используется, чтобы указать, как отправлять данные формы. Ниже приведен пример формы HTML, которую можно использовать для регистрации. Вывод: В приведенной выше форме я использовал разные типы полей ввода.Мы обсудим эти различные типы полей ввода позже в этой статье. Я также использовал обязательный атрибут во многих тегах ввода выше. Мы используем его для проверки. Мы также обсудим это позже в статье. Следующий код показывает HTML-форму страницы входа. Существуют различные типы ввода, которые мы можем использовать для создания HTML-форм.Одно из них — радио. Радио — один из наиболее часто используемых типов ввода. Вы когда-нибудь замечали несколько круглых вариантов при регистрации или подписке онлайн? Например, при выборе пола. Это называется радио. Ниже приведен пример типов радио. В приведенном выше примере есть три переключателя.Вы можете выбрать только один из них. Атрибут value указывает значение каждой радиокнопки. Мы также можем использовать атрибут checked для первоначального выбора переключателя. В следующем примере есть отмеченный атрибут. В приведенном выше примере мужскому переключателю присваивается отмеченный атрибут. Проверка играет важную роль в формах HTML. В форме несколько полей ввода всегда являются обязательными. Например, при регистрации на facebook такие поля, как имя, фамилия, адрес электронной почты и пароль, являются обязательными для заполнения. Для этой проверки мы используем обязательный атрибут. Когда мы пытаемся отправить HTML-форму без заполнения поля электронной почты, появится сообщение, потому что мы отметили поле электронной почты как обязательное. Мы также можем использовать атрибут maxlength в поле ввода, если тип — текст. Атрибут maxlength указывает максимальную длину, разрешенную для поля ввода. В следующем коде есть два поля ввода с текстом типа. Оба имеют максимальную длину десять. Это означает, что мы не можем ввести более десяти символов в эти поля ввода. Мы должны использовать Javascript для проверки сложных форм. Мы можем использовать различные типы ввода при создании формы. Форма может состоять из нескольких полей ввода разных типов. Я объясню некоторые из самых основных и часто используемых типов ввода. Наиболее часто используемый тип ввода — текст. Мы можем использовать текстовый тип, когда данные, которые необходимо ввести в поле ввода, — это текст. Он используется для полей ввода, таких как имя, отчество, фамилия, адрес и т. Д.Атрибут value может использоваться для присвоения полю начальное значение. В следующем коде есть два поля ввода с начальными значениями. Поля ввода электронной почты широко распространены по всему Интернету.Каждый веб-сайт запрашивает электронное письмо, когда мы пытаемся зарегистрироваться. Для электронной почты ввод имеет отдельный тип. Если поле ввода имеет адрес электронной почты в качестве своего типа, вы должны ввести действующий адрес электронной почты, иначе будет отображаться сообщение. В следующем примере поле электронной почты имеет тип электронной почты. Если мы попытаемся отправить, не указав действующий адрес электронной почты, появится сообщение об ошибке. Он принимает только действительный адрес электронной почты. Пароли конфиденциальны. Мы не хотим никому передавать наши пароли. Они должны быть дискретными даже при вводе их на экране. Мы используем тип пароля в полях ввода для пароля. Мы можем ввести пароль в поле, но он не появится, вместо этого появятся точки. В следующем поле ввода указан тип пароля. Мы использовали тип радио для выбора одного варианта из множества.Что, если мы хотим выбрать несколько из них? Мы используем флажок в качестве типа для этого. Как и в случае с радио, мы также можем изначально установить флажок, даже больше, чем один. В следующем примере четыре флажка, два из которых уже отмечены. Подобно типу радио, нам также нужно присвоить значение каждому флажку. Форма неполная без кнопок. Во входных тегах доступны кнопки трех типов. Самый важный из них — Отправить. Мы можем использовать тип отправки для создания кнопки, которая при нажатии отправляет данные формы по URL-адресу, указанному в атрибуте действия тега формы. Значение, присвоенное этому входу, — это текст, который появляется на кнопке. Помимо отправки, мы также можем использовать кнопку и сброс в качестве типа.Тип кнопки создает кнопку, которую можно щелкнуть, а тип сброса инициализирует значения всех полей ввода исходными значениями. Тип ввода отличается от любого другого типа ввода. Когда мы используем скрытый тип в поле ввода, это поле ввода не появляется на экране. Тогда какая от этого польза? Он используется веб-разработчиками для обновления базы данных при отправке формы. Пользователь не знает об этом поле ввода. Следующая форма имеет два поля ввода.Первый текстовый, второй — скрытый. Этот тип ввода аналогичен комментарию HTML. Но в скрытом поле значение такого поля передается внутри формы. Второе поле ввода не видно. Вывод: Текстовая область — это не тип ввода, а сам тег. Он также часто используется в HTML-формах. Мы можем использовать тег textarea, чтобы предоставить пользователю место в форме, чтобы что-то написать. Мы определяем текстовую область количеством строк и столбцов. Он может содержать неограниченное количество символов. В следующем примере показана текстовая область с четырьмя строками и пятьюдесятью столбцами. Вывод: Мы также можем инициализировать текстовую область, написав что-нибудь внутри тегов textarea. Подобно тегу textarea, Select не является типом ввода. Это тег, который также часто используется в HTML-формах. Тег Select — это не что иное, как раскрывающийся список с различными вариантами выбора. Мы можем выбрать только один вариант. Тег select используется для создания раскрывающегося списка, а тег параметра — для создания параметра внутри него. Мы можем использовать любое количество тегов option внутри тега select. В следующем коде есть тег выбора с четырьмя параметрами. Вывод: Мы должны вставить атрибут значения в каждый тег option, потому что он помогает скрытно, когда мы используем Javascript. Тег формы имеет атрибут действия. Этот атрибут определяет URL-адрес или файл, в который должны быть отправлены данные формы при нажатии на отправку. Помимо атрибута действия, есть еще один атрибут, называемый методом. Атрибут метода может иметь значение GET или POST. Он определяет, как отправить данные формы. Когда мы используем метод GET, данные формы отправляются как переменная URL. В следующем HTML-файле есть форма входа. Вывод: Атрибут действия содержит файл PHP action_get. При нажатии кнопки отправки данные формы отправляются в файл action_get.php. Вывод: Когда используется метод GET, данные формы отправляются через URL-адрес в адресной строке.Обратите внимание на картинку ниже. Мы можем видеть данные формы, отправленные ранее. Вывод: Метод post не отправляет данные через URL. Вместо этого данные формы встроены в HTTP-запрос. Атрибут действия следующей формы содержит файл PHP action_post. Вывод: Следующий файл — action_post.php Вывод: Обратите внимание на адресную строку после отправки формы. Мы видим, что в URL-адресе нет значений. В вышеприведенной теме мы наблюдаем разницу между GET и POST.Хотя в адресной строке разница была, но вывод остался прежним. В файле action_get.php я использую следующий код для печати данных формы. В файле action_post.php я использовал следующий код. Мы видим, я отдельно напечатал имя и адрес электронной почты в обоих файлах.Это нормально, когда есть только два поля ввода, но что делать, если в HTML-форме несколько полей ввода? Печать данных каждого поля ввода приведет к получению кода, состоящего из слишком большого количества строк. Более того, другим будет сложно анализировать код. Чтобы решить эту проблему, мы можем использовать цикл Foreach, предоставляемый PHP. Мы можем использовать цикл foreach для перебора полей ввода. В следующем примере представлена HTML-форма регистрации с различными полями ввода. Вывод: Сообщение о действии.php выглядит следующим образом: Вывод: Соблюдайте приведенный выше код. В цикле Foreach используется $ _POST, потому что я указал метод формы как POST. Если мы хотим использовать метод GET, напишите $ _GET вместо $ _POST. Ключ $ представляет имя каждого поля, а значение $ представляет значение каждого поля.echo используется для печати данных на экране. — один из лучших способов взаимодействия с пользователем. Мы можем использовать эти формы для отправки данных или их извлечения. Есть множество типов ввода, которые мы можем использовать для создания формы. Ранее я уже объяснял несколько общих и важных типов. Вы также можете настроить цвета шрифта или цвета фона в полях формы. Изображения также можно использовать как кнопки. Мы также можем использовать Javascript для обработки форм перед их публикацией за кулисами.Например, мы можем объединить строку или проанализировать числа перед отправкой формы. играют важную роль в полнофункциональной веб-разработке, и их следует освоить, прежде чем переходить на более высокий уровень. Ввод в сценарии PHP обычно
передается в программу с помощью веб-форм. Формы включают текстовые поля, радио
кнопки, флажки, всплывающие окна, таблицы прокрутки и т.п.Таким образом, получение ввода от пользователя обычно представляет собой двухэтапный процесс: вы должны создать
документ HTML, который предоставляет формы, позволяющие пользователям передавать информацию
сервер, и ваш PHP-код должен иметь средства
для анализа входных данных и определения действий, которые необходимо предпринять. Мы кратко обсудим эти две темы в следующих разделах. Формы обозначаются в документе HTML с помощью тега заполнения формы: URL-адрес, указанный после ACTION, является URL-адресом вашей программы. МЕТОД — это средство передачи данных из формы в программу. В этом примере мы использовали метод «POST», который является рекомендуемым. Есть еще один метод, называемый «GET», но с этим методом связаны общие проблемы. Оба будут рассмотрены в следующем разделе. В форме может быть что угодно, кроме другой формы.Для создания объектов пользовательского интерфейса используются следующие теги: INPUT, SELECT и TEXTAREA. Тег INPUT определяет простой интерфейс ввода: Что даст следующее: Различные атрибуты в основном говорят сами за себя.ТИП — это разновидность представляемого вами входного объекта. Допустимые типы включают «текст», «пароль», «флажок», «радио», «отправить», «сбросить» и «скрытый». Каждый ввод, кроме «submit» и «reset», имеет ИМЯ, которое будет связано со значением, возвращаемым во вводе в программу. Это не будет видно пользователю (если он не прочитает исходный HTML-код). Остальные поля будут объяснены типами: «текст» — относится к простому текстовому полю ввода. VALUE относится к тексту по умолчанию в текстовом поле, SIZE представляет визуальную длину поля, а MAXLENGTH указывает максимальное количество символов, которое допускает текстовое поле.Для всего этого есть значения по умолчанию (ничего, 20, без ограничений). «пароль» — то же, что и обычное поле ввода текста, но вводимые символы скрыты. «флажок» — относится к переключателю, который независимо включен или выключен. ЗНАЧЕНИЕ относится к строке, отправляемой на сервер, когда кнопка отмечена (не отмеченные флажки игнорируются). Значение по умолчанию — «включено». «радио» — относится к кнопке переключения, которая может быть сгруппирована с другими кнопками переключения, так что только одна из них может быть включена.По сути, это то же самое, что и флажок, но любая радиокнопка с тем же атрибутом NAME будет сгруппирована с этим. «отправить» и «сбросить» — это кнопки внизу большинства форм, которые вы увидите, чтобы отправить форму или очистить ее. У них не обязательно быть ИМЯ, а ЗНАЧЕНИЕ относится к метке на кнопке. Имена по умолчанию — «Отправить запрос» и «Сброс» соответственно. «скрытый» — этот ввод невидим с точки зрения пользовательского интерфейса (хотя не обманывайтесь, думая, что это какая-то функция безопасности — «скрытые» поля легко найти, просматривая источник документа или исследуя URL-адрес для метода GET).Он просто создает привязку атрибута / значения без необходимости действий пользователя, которые прозрачно передаются при отправке формы. Второй тип интерфейса — это интерфейс SELECT, который включает всплывающие меню и таблицы с прокруткой. Вот примеры обоих: Что даст нам: Опция 1
вариант 2
вариант 3
вариант 4
вариант 5
вариант 6
вариант 7
Опция 1
вариант 2
вариант 3
вариант 4
вариант 5
вариант 6
вариант 7 Атрибут SIZE определяет, является ли это меню или прокручиваемым списком.Если он равен 1 или отсутствует, по умолчанию используется всплывающее меню. Если он больше 1, вы увидите прокручиваемый список с элементами SIZE. Параметр MULTIPLE, который заставляет выбор быть прокручиваемым списком, означает, что может быть выбрано более одного значения (по умолчанию только одно значение может быть выбрано в прокручиваемом списке). OPTION более или менее говорит само за себя — он дает имена и значения каждого поля в меню или в прокручиваемой таблице, и вы можете указать, какие из них выбраны по умолчанию. Последний тип интерфейса — это интерфейс TEXTAREA: Как обычно, ИМЯ — это символическая ссылка, к которой будет привязан ввод при передаче в программу. Значения ROWS и COLS — это видимый размер поля. В текстовую область можно ввести любое количество символов. Текст текстовой области по умолчанию вводится между тегами. Предположительно соблюдаются пробелы (как между тегами PHP может обрабатывать запросы как GET, так и POST.Анализ ввода выполняется за вас с помощью PHP, поэтому вы полностью отделены от фактического формата входных данных. обычно представляют собой комбинацию кода HTML и PHP, заключенную в теги
, чтобы мы могли явно связать каждую метку с ее родственным полем ввода. Это позволяет пользователям нажимать на метку, чтобы сфокусировать поле, но также запускает вспомогательные технологии, такие как программы чтения с экрана, для считывания метки поля, когда поле получает фокус.
Написание обработчика отправки формы
'submit'
в документе
и обрабатывать все сообщения формы в одном обработчике событий. Целью события всегда будет форма, которая была отправлена, поэтому мы можем получить доступ к элементу формы с помощью e.цель
preventDefault
для объекта события
, это предотвратит действия по умолчанию, выполняемые браузером.
document.addEventListener ("отправить", (e) => {
const form = e.target;
e.preventDefault ();
});
fetch
API, для сбора данных формы мы можем использовать супер удобный API под названием FormData
.
document.addEventListener ("отправить", (e) => {
const form = e.target;
fetch (form.action, {
метод: form.method,
тело: новые FormData (форма),
});
e.preventDefault ();
});
fetch
является URL-адрес, поэтому мы передаем свойство form.action
, которое содержит subscribe.php
. Затем мы передаем объект конфигурации, который содержит метод
для использования, который мы получаем из свойства form.method
( POST
). Наконец, нам нужно передать данные в свойстве body
. Мы можем явно передать элемент form
в качестве параметра в конструктор FormData
, и он создаст для нас объект, напоминающий сообщение классической формы и отправленный как multipart / form-data
. preventDefault ()
в конец, чтобы гарантировать, что классическая отправка будет запрещена только в том случае, если выполняется весь наш JavaScript. Кейсы Edge
Отображение состояния успеха
fetch
и обработаем случай разрешения вызова fetch
.
. Затем мы можем превратить этот текстовый ответ в реальный HTML-документ с помощью DOMParser
API, мы говорим ему проанализировать наш текст и рассматривать его как text / html
, мы возвращаем этот результат, чтобы он был доступен в следующем , затем
doc
), и мы наконец можем заменить нашу форму статусом успеха.Мы скопируем body.innerHTML
в наш result.innerHTML
, а затем заменим нашу форму вновь созданным элементом результата. И последнее, но не менее важное: мы перемещаем фокус на элемент результата, чтобы он был прочитан пользователями программ чтения с экрана, а пользователи клавиатуры могли возобновить навигацию с этого места на странице.
document.addEventListener ("отправить", (e) => {
const form = e.target;
fetch (form.action, {
метод: form.method,
тело: новые FormData (форма),
})
.затем ((res) => res.text ())
.then ((текст) => новый DOMParser (). parseFromString (текст, "текст / html"))
.then ((doc) => {
const result = document.createElement ("div");
result.innerHTML = doc.body.innerHTML;
result.tabIndex = -1;
form.parentNode.replaceChild (результат, форма);
result.focus ();
});
e.preventDefault ();
});
Проблемы с подключением
fetch
будет отклонен, что мы можем обработать с помощью ловушки
hidden
мы скрыли
от всех.Мы добавили в абзац role = "alert"
, это заставляет программы чтения с экрана читать вслух содержание абзаца, как только он становится видимым. fetch
( catch
), выберет наш абзац предупреждения и покажет его пользователю.
document.addEventListener ("отправить", (e) => {
const form = e.target;
fetch (form.action, {
метод: форма.метод
тело: новые FormData (форма),
})
.then ((res) => res.text ())
.then ((текст) => новый DOMParser (). parseFromString (текст, "текст / html"))
.then ((doc) => {
const result = document.createElement ("div");
result.innerHTML = doc.body.innerHTML;
result.tabIndex = -1;
form.parentNode.replaceChild (результат, форма);
result.focus ();
})
.catch ((err) => {
form.querySelector ("[роль = предупреждение]").скрытый = ложный;
});
form.querySelector ("[роль = предупреждение]"). hidden = true;
e.preventDefault ();
});
[role = alert]
. Имя класса не нужно. Я не говорю, что он может нам не понадобиться в будущем, но иногда выбор по атрибуту — это нормально. Блокировка полей при загрузке
form.elements
, чтобы выбрать все поля формы, а затем отключить каждое поле. в вашей форме, вы можете отключить набор полей, и это отключит все поля внутри него
document.addEventListener ("отправить", (e) => {
const form = e.цель;
fetch (form.action, {
метод: form.method,
тело: новые FormData (форма),
})
.then ((res) => res.text ())
.then ((текст) => новый DOMParser (). parseFromString (текст, "текст / html"))
.then ((doc) => {
const result = document.createElement ("div");
result.innerHTML = doc.body.innerHTML;
result.tabIndex = -1;
form.parentNode.replaceChild (результат, форма);
result.focus ();
})
.catch ((err) => {
форма.querySelector ("[роль = предупреждение]"). hidden = false;
});
Array.from (form.elements) .forEach ((field) => (field.disabled = true));
form.querySelector ("[роль = предупреждение]"). hidden = true;
e.preventDefault ();
});
form.elements
необходимо превратить в массив с использованием Array.from
, чтобы мы перебрали его с помощью forEach
и установили атрибут disable
на true
для каждого поля. fetch
завершится неудачно и мы закончим в нашем catch
, все поля формы будут отключены, и мы больше не сможем использовать нашу форму.Давайте решим эту проблему, добавив тот же оператор в обработчик catch и
, но вместо отключения полей мы включим поля.
.catch (err => {
Array.from (form.elements) .forEach (field => field.disabled = false);
form.querySelector ('[роль = предупреждение]'). hidden = false;
});
.Если fetch
не работает, мы попадаем в обработчик catch
, включаем наши элементы формы, но пользователь уже потерял свое местоположение на странице (это особенно полезно для пользователей, использующих клавиатуру, или, опять же, для пользователей, которые приходится полагаться на программу чтения с экрана). document.activeElement
, а затем восстановить фокус с помощью element.focus ()
позже, когда мы активируем все поля в обработчике catch и
.Пока мы ждем ответа, мы переместим фокус на сам элемент формы.
document.addEventListener ("отправить", (e) => {
const form = e.target;
fetch (form.action, {
метод: form.method,
тело: новые FormData (форма),
})
.then ((res) => res.text ())
.then ((текст) => новый DOMParser (). parseFromString (текст, "текст / html"))
.then ((doc) => {
const result = document.createElement ("div");
result.innerHTML = doc.body.innerHTML;
result.tabIndex = -1;
form.parentNode.replaceChild (результат, форма);
result.focus ();
})
.catch ((err) => {
Array.from (form.elements) .forEach ((field) => (field.disabled = false));
lastActive.focus ();
form.querySelector ("[роль = предупреждение]"). hidden = false;
});
const lastActive = document.activeElement;
form.tabIndex = -1;
form.focus ();
Array.from (form.elements) .forEach ((field) => (field.отключено = правда));
form.querySelector ("[роль = предупреждение]"). hidden = true;
e.preventDefault ();
});
Отображение состояния занятости
fetch
является необычным, в настоящее время он не поддерживает установку тайм-аута, а также не поддерживает события прогресса, поэтому для состояний занятости, которые могут занять некоторое время, не будет стыдно использовать XMLHttpRequest
, было бы даже неплохо. status-failure
и добавим рядом с ним наш занятый абзац.
catch
. Если данные отправлены правильно, вся форма заменяется, поэтому нет необходимости снова скрывать ее в потоке успеха.
document.addEventListener ("отправить", (e) => {
const form = e.target;
const statusBusy = form.querySelector (". статус-занято");
const statusFailure = form.querySelector (". статус-сбой");
fetch (form.action, {
метод: форма.метод
тело: новые FormData (форма),
})
.then ((res) => res.text ())
.then ((текст) => новый DOMParser (). parseFromString (текст, "текст / html"))
.then ((doc) => {
const result = document.createElement ("div");
result.innerHTML = doc.body.innerHTML;
result.tabIndex = -1;
form.parentNode.replaceChild (результат, форма);
result.focus ();
})
.catch ((err) => {
Array.from (form.elements) .forEach ((field) => (field.отключено = ложь));
lastActive.focus ();
statusBusy.hidden = false;
statusFailure.hidden = false;
});
const lastActive = document.activeElement;
statusBusy.hidden = false;
statusBusy.tabIndex = -1;
statusBusy.focus ();
Array.from (form.elements) .forEach ((field) => (field.disabled = true));
statusFailure.hidden = true;
e.preventDefault ();
});
Заключение
HTML-форма: как отправлять данные с помощью HTML
Темы в этой статье
Шаблоны HTML-форм
Зарегистрироваться
Войти
Форма радио
Проверки
Войти
Типы ввода формы
Войти
Флажок:
Отправить:
Скрытый
<тело
TextArea
<форма>
Выбрать
Действие формы
Добро пожаловать
Ваш адрес электронной почты:
Добро пожаловать
Ваш адрес электронной почты:
Пример PHP для чтения отправленной формы
Добро пожаловать
Ваш адрес электронной почты: Добро пожаловать
Ваш адрес электронной почты:
$ value) {
echo "$ key is $ value
";
}
?>
Заключение
HTML-формы Обработка ввода в PHP
Обработка ввода в PHP Обработка пользовательского ввода в PHP
HTML-формы
... Содержание формы ...
<ВЫБРАННАЯ ОПЦИЯ> опция 1
<ВЫБРАННАЯ ОПЦИЯ> опция 2
<ОПЦИЯ> опция 3
<ОПЦИЯ> опция 4
У Мэри был ягненок.
Ягненок?
Ягненок!
У Мэри был ягненок.
Это шерсть была бела как снег.
HTML), включая новую строку после первого тега и перед последним тегом.
Обработка ввода на стороне сервера — PHP
, и выполняются в ответ на HTTP-запросы от клиента. Давайте посмотрим на очень простую программу PHP, традиционную HelloWorld:
печать "";
печать «<заголовок>»;
$ title = "Привет, мир";
print "
печать "";
print "";
print " $ title
"; $ param = $ _GET ["параметр"];
if ($ param) {
print "Спасибо за прекрасную привязку param = '$ param'.";
} печать "";
печать "