Файлы DLL Атрибуты тега form html. HTML Формы 29.05.2019 HTML формы — сложные элементы интерфейса. Они включают в себя разные функциональные элементы: поля ввода и , списки , подсказки и т.д. Весь код формы заключается в элемент . Большая часть информации веб-форм передаётся с помощью элемента . Для ввода одной строки текста применяется элемент , для нескольких строк - элемент . Элемент создает выпадающий список. Элемент создаёт надписи к полям формы. Существует два способа группировки надписи и поля. Если поле находится внутри элемента , то атрибут for указывать не нужно. Last Name Last Name Last Name Поля формы можно разделять на логические блоки с помощью элемента . Каждому разделу можно присвоить название с помощью элемента . Контактная информация Имя E-mail Рис. 1. Группировка полей формы Чтобы сделать форму более понятной для пользователей, в поля формы добавляют текст, содержащий пример вводимых данных. Такой текст называется подстановочным и создаётся с помощью атрибута placeholder . Обязательные для заполнения поля также необходимо выделять. До появления HTML5 использовался символ звездочки * , установленный возле названия поля. В новой спецификации появился специальный атрибут required , который позволяет отметить обязательное поле на уровне разметки. Этот атрибут дает указание браузеру (при условии, что тот поддерживает HTML5), указание не отправлять данные после нажатия пользователем кнопки отправить, пока указанные поля не заполнены. Для изменения внешний вид текстового поля при получении фокуса, используется псевдокласс focus . Например, можно сделать фон текущего поля более темным или добавить цветную рамку, чтобы оно выделялось среди остальных:Input:focus { background: #eaeaea; } Ещё один полезный html5-атрибут — атрибут autofocus . Он позволяет автоматически установить фокус на нужном начальном поле для элементов и (только в один элемент каждой формы). Пример создания формы регистрации HTML разметка Регистрация Имя Пол мужской женский E-mail Страна Выберите страну проживания Россия Украина Беларусь Отправить Примечание action="form.php" — ссылка на файл обработчика формы. Создайте файл в кодировке UTF-8, закачайте его на сервер и замените action="form.php" на путь к файлу на вашем сервере. Рис. 2. Внешний вид формы по умолчанию Как видно из рисунка, каждый элемент формы имеет стили браузера по умолчанию. Очистим стили и оформим элементы формы.Form-wrap { width: 550px; background: #ffd500; border-radius: 20px; } .form-wrap *{transition: .1s linear} .profile { width: 240px; float: left; text-align: center; padding: 30px; } form { background: white; float: left; width: calc(100% - 240px); padding: 30px; border-radius: 0 20px 20px 0; color: #7b7b7b; } .form-wrap:after, form div:after { content: ""; display: table; clear: both; } form div { margin-bottom: 15px; position: relative; } h1 { font-size: 24px; font-weight: 400; position: relative; margin-top: 50px; } h1:after { content: "\f138"; font-size: 40px; font-family: FontAwesome; position: absolute; top: 50px; left: 50%; transform: translateX(-50%); } /********************** стилизация элементов формы **********************/ label, span { display: block; font-size: 14px; margin-bottom: 8px; } input, input { border-width: 0; outline: none; margin: 0; width: 100%; padding: 10px 15px; background: #e6e6e6; } input:focus, input:focus { box-shadow: inset 0 0 0 2px rgba(0,0,0,.2); } .radio label { position: relative; padding-left: 50px; cursor: pointer; width: 50%; float: left; line-height: 40px; } .radio input { position: absolute; opacity: 0; } .radio-control { position: absolute; top: 0; left: 0; height: 40px; width: 40px; background: #e6e6e6; border-radius: 50%; text-align: center; } .male:before { content: "\f222"; font-family: FontAwesome; font-weight: bold; } .female:before { content: "\f221"; font-family: FontAwesome; font-weight: bold; } .radio label:hover input ~ .radio-control, .radiol input:focus ~ .radio-control { box-shadow: inset 0 0 0 2px rgba(0,0,0,.2); } .radio input:checked ~ .radio-control { color: red; } select { width: 100%; cursor: pointer; padding: 10px 15px; outline: 0; border: 0; background: #e6e6e6; color: #7b7b7b; -webkit-appearance: none; /*убираем галочку в webkit-браузерах*/ -moz-appearance: none; /*убираем галочку в Mozilla Firefox*/ } select::-ms-expand { display: none; /*убираем галочку в IE*/ } .select-arrow { position: absolute; top: 38px; right: 15px; width: 0; height: 0; pointer-events: none; /*активизируем показ списка при нажатии на стрелку*/ border-style: solid; border-width: 8px 5px 0 5px; border-color: #7b7b7b transparent transparent transparent; } button { padding: 10px 0; border-width: 0; display: block; width: 120px; margin: 25px auto 0; background: #60e6c5; color: white; font-size: 14px; outline: none; text-transform: uppercase; } /********************** добавляем форме адаптивность **********************/ @media (max-width: 600px) { .form-wrap {margin: 20px auto; max-width: 550px; width:100%;} .profile, form {float: none; width: 100%;} h1 {margin-top: auto; padding-bottom: 50px;} form {border-radius: 0 0 20px 20px;} } Файл form.php " . "\r\n"; $headers .= "Bcc: ваш_email". "\r\n"; if(!empty($name) && !empty($sex) && !empty($email) && !empty($country) && filter_var($email, FILTER_VALIDATE_EMAIL)){ mail($email, $subject, $msg, $headers); echo "Спасибо! Вы успешно зарегистрировались."; } ?> Примечание В переменной $subject укажите текст, который будет отображаться как заголовок письма; Ваше_имя — здесь вы можете указать имя, которое будет отображаться в поле «от кого письмо» ; url_вашего_сайта замените на адрес сайта с формой регистрации; ваш_email замените на ваш адрес электронной почты; $headers .= "Bcc: ваш_email". "\r\n"; отправляет скрытую копию на ваш адрес электронной почты. В процессе навигации по сайтам пользователь, в основном, только щёлкает по ссылкам чтобы перемещаться по веб-страницам.Но понятно, что пользователю иногда требуется обеспечить собственные поля ввода . Эти виды взаимодействия включают в себя:регистрацию и вход на сайтах;ввод личной информации (имя, адрес, данные кредитной карты и др.);фильтрацию контента (с помощью выпадающих списков, флажков и др.);выполнение поиска;загрузку файлов. Чтобы приспособиться к этим потребностям, HTML предлагает интерактивные элементы управления формы:текстовые поля (для одной или нескольких строк);переключатели;флажки;выпадающие списки;виджеты для загрузки;кнопки отправки. Эти элементы управления задействуют разные теги HTML, но большинство из них использует тег . Поскольку это самозакрывающий элемент, тип поля определяется его атрибутом type : Элемент является блочным элементом, который определяет интерактивную часть веб-страницы. Как результат, все элементы управления (такие как , или ) должны находиться внутри элемента .Два атрибута HTML необходимы :action содержит адрес, который определяет, куда будет отправлена информация формы;method может быть либо GET, либо POST и определяет, как будет отправлена информация формы. Как правило, информация формы посылается на сервер . Как эти данные затем будут обработаны выходит за рамки данного руководства.Подумайте о форме как о наборе элементов управления, которые работают вместе, чтобы выполнить одну операцию. Если вы написали форму входа на сайт, у вас могло быть три поля:поле для электронной почты поле для пароля кнопка отправки Эти три элемента HTML будут заключены внутри одной формы .Вы можете аналогично добавить форму регистрации на той же HTML-странице, в отдельном элементе .Текстовые поляПочти всем формам требуется текстовый ввод от пользователей, чтобы ввести своё имя, адрес электронной почты, пароль, адрес и др. Текстовые поля формы приходят в разных вариантах.Хотя эти поля очень похожи и позволяют пользователям вводить текст любого рода (даже неправильный), их тип обеспечивает специфическую семантику для ввода, определяя, какую информацию поле должно содержать.Браузеры могут впоследствии немного изменить интерфейс элемента управления, чтобы повысить интерактивность или подсказать, какое содержимое ожидается.К примеру, поле для пароля показывает точки вместо символов. А поле для чисел позволяет увеличивать/уменьшать значение с помощью клавиш вверх и вниз.placeholderТекстовые поля могут отображать подсказывающий текст, который исчезнет, как только будет введён некоторый текст. Если вы начинаете набирать что-то, то увидите как текст «Введите своё имя» исчезнет.Так как элементы формы сами по себе не очень описательны, им, как правило, предшествует текстовая метка . Email В то время как placeholder уже обеспечивает некоторую подсказку о том, какое ожидается содержание, метки имеют преимущество оставаясь видимыми в любое время и могут использоваться наряду с другими типами элементов формы, таких как флажки или переключатели.Хотя вы можете применять короткие абзацы для описания элементов формы, использование является семантически более правильным, потому что они существуют только в формах. также может быть связан с определённым элементом формы с помощью атрибута for , соответствующему значению id у поля. Имя При щелчке по метке фокус переходит к текстовому полю и помещает курсор внутрь него. Пока эта связка кажется бесполезной, но пригодится с флажками и переключателями.ФлажкиФлажки - это элементы формы, которые имеют только два состояния: включено или выключено. Они в основном позволяют пользователю сказать: «Да» или «Нет» для чего-то. Запомнить меня Поскольку может оказаться сложно щёлкнуть по небольшому флажку, рекомендуется поместить флажок и его описание внутрь . Я согласен с условиями Вы можете щёлкнуть по тексту «Я согласен с условиями» чтобы переключить флажок.По умолчанию флажок выключен. Вы можете пометить его включенным, просто используя атрибут checked . Использовать мой платёжный адрес ПереключателиВы можете предоставить пользователю список вариантов на выбор с помощью переключателей.Для работы этого элемента формы, ваш HTML-код должен сгруппировать список переключателей вместе. Это достигается с помощью одного и того же значения для атрибута name: Семейное положение Холост Женат Разведён Вдовец Поскольку все переключатели используют одинаковое значение атрибута name (в данном случае значение status ), выбор одного из вариантов отменит все остальные. Переключатели являются взаимоисключающими .Разница между переключателями и флажкамиХотя флажок существует сам по себе , переключатели могут появляться только в виде списка (что означает, по меньшей мере два варианта).Кроме того, щелчок по флажку является произвольным , в то время как выбор одного из переключателей является обязательным . Вот почему невозможно выключить переключатель, если выбрать ближайший вариант. В конце концов, всегда выбирается один из переключателей.Выпадающие менюЕсли количество вариантов для выбора занимает слишком много места, вы можете воспользоваться выпадающими меню .Они работают подобно переключателям, отличается только компоновка. Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь Множественный выбор из выпадающего менюЕсли добавить атрибут multiple , вы можете предоставить возможность выбрать несколько вариантов. Какими браузерами вы пользуетесь? Google Chrome Internet Explorer Mozilla Firefox Opera Safari Выберите несколько вариантов посредством удержания Ctrl (или ⌘) и щелчка. Это может быть хорошей альтернативой применению несколько флажков в строке.Пример: полная форма регистрации Обращение Г-н Г-жа Имя Фамилия Email Телефон Пароль Подтвердите пароль Страна Канада Франция Германия Италия Япония Россия Великобритания США Я согласен с условиями использования Зарегистрироваться Также доступны и другие элементы форм, но мы рассмотрели наиболее используемые. Зачастую на Web – сайтах можно встретить страницы с размещенными на них HTML - формами. Веб-формы – удобный способ получения информации от посетителей вашего сайта. Пример тому – , – которая обеспечивает обратную связь с посетителями и разработчиками сайта. Формы так же удобны и для разработчиков сайта при разработке CMS, которая позволяет поддерживать главное свойство сайта - актуальность. Данная статья посвящена основам создания HTML-форм, их обработке и способам передачи данных из экранных форм в PHP-сценарии. 1) Создание простой формы Теги и задают начало и конец формы. Начинающий форму тег содержит два атрибута: action и method . Атрибут action содержит адрес URL сценария, который должен быть вызван для обработки сценария. Атрибут method указывает браузеру, какой вид HTTP запроса необходимо использовать для отправки формы; возможны значения POST и GET . Замечание Главное отличие методов POST и GET заключается в способе передачи информации. В методе GET параметры передаются через адресную строку, т.е. по сути в HTTP-заголовке запроса, в то время как в методе POST параметры передаются через тело HTTP-запроса и никак не отражаются на виде адресной строки. $text = nl2br ($_POST [ "mytext" ]); ?> Задача: Пусть необходимо создать выпадающий список с годами с 2000 по 2050.Решение: Необходимо создать HTML форму c элементом SELECT и PHP – сценарий для обработки формы.Обсуждение: Для начала создадим два файла: form.html и action.php . В файле form.html будет содержаться html-форма с выпадающим списком. Причем значения в списке можно указать двумя способами: I. Ввод данных вручную: 2000 2001 2002 …………………………………………… 2050 II. Ввод данных через цикл: $year = 2000 ; for ($i = 0 ; $i <= 50 ; $i ++) // Цикл от 0 до 50 { $new_years = $year + $i ; // Формируем новое значение echo "" . $new_years . "" ; //Формируем новую строчку } ?> Как видно, второй пример с циклом, более компактный. Думаю, не стоит приводить скрипт обработчика данной формы, потому что он обрабатывается точно так же как текстовое поле, т.е. значения списка можно извлечь из суперглобального массива $_POST . Описание: Создадим HTML-форму для отправки файла на сервер. В данной html-форме присутствует элемент browse , который открывает диалоговое окно для выбора файла для загрузки на сервер. При нажатии на кнопку "Передать файл" , файл передается сценарию-обработчику. Затем необходимо написать сценарий обработчик action.php . Перед написание обработчика необходимо определиться в какой каталог мы будет копировать файл: if(isset($_FILES [ "myfile" ])) // Если файл существует { $catalog = "../image/" ; // Наш каталог if (is_dir ($catalog )) // Если такой каталог есть { $myfile = $_FILES [ "myfile" ][ "tmp_name" ]; // Времменый файл $myfile_name = $_FILES [ "myfile" ][ "name" ]; // Имя файла if(! copy ($myfile , $catalog )) echo "Ошибка при копировании файла " . $myfile_name // Если неудалось скопировать файл } else mkdir ("../image/" ); // Если такого каталога нет, то мы его создадим } ?> Замечание Если вы доверяете пользователям закачивать на ваш сервер любые файлы, нужно быть предельно осторожным. Злоумышленники могут внедрить «нехороший» код в картинку или файл и отправить на сервер. В таких случаях нужно жестоко контролировать загрузку файлов. Данный пример демонстрирует создание каталога и копирование файла в этот каталог на сервер. Также хотел бы продемонстрировать пример с элементом checkbox . Этот элемент немного отличается от других элементов тем, что если не один из элементов checkbox ’a не выбран, то суперглобальная переменная $_POST вернет пустое значение: Синий Черный Белый if (!empty($_POST [ "mycolor" ])) echo $_POST [ "mycolor" ]; // Если выбран хоть 1 элемент else echo "Выберите значение" ; ?> Тег (от англ. form - форма) устанавливает форму на веб-странице. Форма предназначена для обмена данными между пользователем и сервером. Область применения форм не ограничена отправкой данных на сервер, с помощью клиентских скриптов можно получить доступ к любому элементу формы, изменять его и применять по своему усмотрению. Документ может содержать любое количество форм, но одновременно на сервер может быть отправлена только одна форма. По этой причине данные форм должны быть независимы друг от друга. Для отправки формы на сервер используется кнопка Submit, того же можно добиться, если нажать клавишу Enter в пределах формы. Если кнопка Submit отсутствует в форме, клавиша Enter имитирует её использование. Когда форма отправляется на сервер, управление данными передаётся программе, заданной атрибутом action элемента . Предварительно браузер подготавливает информацию в виде пары « имя=значение », где имя определяется атрибутом name элемента , а значение введено пользователем или установлено в поле формы по умолчанию. Если для отправки данных используется метод GET, то адресная строка может принимать следующий вид.Http://www.htmlbook.ru/handler.php?nick=%C2%E0%ED%FF+%D8%E0%EF%EE%F7%EA%E8%ED&page=5 Параметры перечисляются после вопросительного знака, указанного после адреса серверной программы и разделяются между собой символом амперсанда (&). Русские буквы преобразуются в шестнадцатеричное представление (в форме %HH , где HH - шестнадцатеричный код для значения ASCII-символа), пробел заменяется на плюс (+). Допускается внутрь контейнера помещать другие элементы, при этом сама форма никак не отображается на веб-странице, видны только элементы внутри неё. Синтаксис ... Закрывающий тег обязателен. WAI ARIA Значение role по умолчанию: form Допустимые значения role: none presentation search Атрибуты accept-charset - Устанавливает кодировку, в которой сервер может принимать и обрабатывать данные. action - Адрес программы или документа, который обрабатывает данные формы. autocomplete - Включает автозаполнение полей формы. enctype - Способ кодирования данных формы. method - Метод протокола HTTP. name - Имя формы. novalidate - Отменяет встроенную проверку данных формы на корректность ввода. target - Имя окна или фрейма, куда обработчик будет загружать возвращаемый результат. accept-charset Устанавливает кодировку, в которой сервер может принимать и обрабатывать данные формы. Синтаксис ... Значения Название кодировки, например Windows-1251 , UTF-8 и др. Значение по умолчанию Кодировка, установленная для страницы. action Указывает обработчик, к которому обращаются данные формы при их отправке на сервер. В качестве обработчика может выступать серверная программа или HTML-документ, который включает в себя серверные сценарии (например, Parser). После выполнения обработчиком действий по работе с данными формы он возвращает новый HTML-документ. Если атрибут action отсутствует, текущая страница перезагружается, возвращая все элементы формы к их значениям по умолчанию. Синтаксис ... Значения В качестве значения принимается полный или относительный путь к серверному файлу. Значение по умолчанию autocomplete Управляет автозаполнением полей форм. Значение может быть перекрыто атрибутом autocomplete у конкретных элементов формы. Автозаполнение производит браузер, который запоминает написанные при первом вводе значения, а затем подставляет их при повторном наборе в поля формы. При этом автозаполнение может быть отключено в настройках браузера и не может быть в таком случае изменено при помощи атрибута autocomplete . При вводе первых букв текста отображается список сохранённых ранее значений, из которого можно выбрать необходимое. Синтаксис ... Значения on - Включает автозаполнение формы. off - Отключает автозаполнение. Это значение обычно используется для отмены сохранения в браузере важных данных (паролей, номеров банковских карт), а также редко вводимых или уникальных данных (капча). Значение по умолчанию enctype Определяет способ кодирования данных формы при их отправке на сервер. Обычно устанавливать значение атрибута enctype не требуется, данные вполне правильно понимаются на стороне сервера. Однако если используется поле для отправки файла (input type="file"), следует определить атрибут enctype как multipart/form-data . Синтаксис ... Значения application/x-www-form-urlencoded - Вместо пробелов ставится + , символы вроде русских букв кодируются их шестнадцатеричными значениями (например, %D0%90%D0%BD%D1%8F вместо Аня). multipart/form-data - Данные не кодируются. Это значение применяется при отправке файлов. text/plain - Пробелы заменяются знаком + , буквы и другие символы не кодируются. Значение по умолчанию application/x-www-form-urlencoded method Атрибут method сообщает серверу о методе запроса. Синтаксис ... Значения Значение атрибута method не зависит от регистра. Различают два метода - get и post . get - Этот метод является одним из самых распространённых и предназначен для получения требуемой информации и передачи данных в адресной строке. Пары « имя=значение » присоединяются в этом случае к адресу после вопросительного знака и разделяются между собой амперсандом (символ &). Удобство использования метода get заключается в том, что адрес со всеми параметрами можно использовать неоднократно, сохранив его, например, в закладки браузера, а также менять значения параметров прямо в адресной строке. post - Метод post посылает на сервер данные в запросе браузера. Это позволяет отправлять большее количество данных, чем доступно методу get , поскольку у post не установлено ограничение в 4 Кб. Большие объёмы данных используются в форумах, почтовых службах, заполнении базы данных, при пересылке файлов и др. Значение по умолчанию name Определяет уникальное имя формы. Как правило, имя формы используется для доступа к её элементам через скрипты. Синтаксис ... Значения В качестве имени используется набор символов, включая числа и буквы. JavaScript чувствителен к регистру, поэтому при обращении к форме по имени через скрипты соблюдайте то же написание, что и в атрибуте name . Значение по умолчанию novalidate Отменяет встроенную проверку данных введённых пользователем в форме на корректность. Такая проверка осуществляется браузером автоматически при отправке формы на сервер и происходит для полей , , а также при наличии атрибута pattern или required . Синтаксис ... Значения Значение по умолчанию По умолчанию этот атрибут выключен. target После того, как обработчик формы получает данные, он возвращает результат в виде HTML-документа. Вы можете определить фрейм, в который будет загружаться итоговая веб-страница. Для этого используется атрибут target , в качестве его значения указывается имя фрейма. Если target не установлен, возвращаемый результат показывается в текущей вкладке. Синтаксис ... Значения В качестве значения используется имя фрейма, заданное атрибутом name элемента . Если установлено несуществующее имя, то будет открыта новая вкладка. В качестве зарезервированных имён можно указывать следующие. _blank - Загружает страницу в новую вкладку браузера. _self - Загружает страницу в текущую вкладку. _parent - Загружает страницу во фрейм-родитель; если фреймов нет, то это значение работает как _self . _top - Отменяет все фреймы и загружает страницу в окне браузера; если фреймов нет, то это значение работает как _self . Значение по умолчанию Спецификации Примеры FORM Как по вашему мнению расшифровывается аббревиатура "ОС"? Офицерский состав Операционная система Большой полосатый мух Форма в HTML это часть документа, которая позволяет пользователю ввести интересующую нас информацию, которую впоследствии можно принять и обработать на стороне сервера. Другими словами, формы используются для сбора информации введённой пользователями. Чтобы определить к какому элементу формы относится текущая метка, необходимо использовать атрибут for тега . Значение атрибута for должно соответствовать значению глобального атрибута того элемента формы, к которому будет относится метка. Атрибут for можно не использовать, если элемент будет находиться внутри элемента . Рассмотрим пример использования: Пример использования тега for = "yes" > Да Нет > Да Нет > В этом примере мы: Внутри первой формы: Разместили две радиокнопки ( ) для выбора одного из ограниченного числа вариантов. Еще раз обратите внимание, что для радиокнопок внутри одной формы необходимо указывать одинаковое имя , значения мы указали разные. Для первой checked , который указывает, что элемент должен быть предварительно выбран при загрузке страницы (в данном случае радиокнопка со значением yes ). Кроме того, мы указали для радиокнопок глобальные атрибуты , которые определяют уникальный идентификатор для элемента. Разместили два элемента , которые определяют текстовые метки для наших текстовых полей. Обратите внимание, что мы использовали атрибут for , чтобы определить к какому элементу формы относится текущая метка. Значение атрибута for соответствует значению глобального атрибута необходимой нам радиокнопки. Внутри второй формы: Разместили две радиокнопки ( ) для выбора одного из ограниченного числа вариантов. Для второй радиокнопки мы указали атрибут checked , который указывает, что элемент должен быть предварительно выбран при загрузке страницы (в данном случае радиокнопка со значением no ). Кроме того, мы указали для радиокнопок уникальные значения в рамках формы и одинаковые имена. Разместили два элемента , внутри них мы разместили наши радиокнопки. В отличии от предыдущего метода отсутствует необходимость указывать для радиокнопок глобальные атрибуты (идентификатор для элемента), а для текстовых меток использовать атрибут for , чтобы на них сослаться (сделать привязку). В браузере оба варианта (метода) использования текстовых меток выглядят идентично: Подсказка для полей ввода Давайте рассмотри пример использования: Пример использования атрибута placeholder Login: type = "text" name = "login" placeholder = "Введите ваш логин" > Password: type = "password" name = "password" placeholder = "Введите ваш пароль" > Далее В данном примере мы указали для элемента с типом text (однострочное текстовое поле) и типом password (поле с паролем) текстовую подсказку для пользователя (атрибут placeholder), которая описывает ожидаемое значение для ввода. Результат нашего примера: Вопросы и задачи по теме Перед тем как перейти к изучению следующей темы пройдите практическое задание: Используя полученные знания составьте следующую форму оформления заказа: Нюанс: в полях, где предполагается выбор, должна быть возможность осуществления выбора кликом по тексту, а не только по самому элементу. После того как вы выполните упражнение проинспектируйте код страницы, открыв пример в отдельном окне, чтобы убедиться, что вы все выполнили правильно.