Все видели формы. Все заполняли формы. Но кодировали ли вы форму?
Форма в сети является любой областью на странице Web, где можно ввести информацию, например,
Использование форм в Web встречается повсеместно, для
Создать форму легко, но как насчет соответствия формы стандартам Web?
К данному моменту, если вы проработали учебный курс по стандартам Web, будем надеяться, что вы уже убедились, что стандарты Web являются способом движения вперед. Код, который необходимо создать для
Поэтому, давайте начнем с самой основной и простой формы, которую кто-то, возможно, захочет использовать, и после этого понемногу будем ее усложнять — в этой лекции будут рассмотрены все основные элементы, которые необходимо знать для создания элегантной,
Давайте начнем с действительно базовой формы комментария, разновидности формы, которая будет использоваться на Web-сайте для предоставления людям возможности высказать свое мнение о чем-то, например, о написанной статье, или позволяющая кому-то вступить с вами в контакт, не зная вашего адреса e-mail. Код выглядит следующим образом:
<form> Name: <input type="text" name="name" id="name" value="" /> Email: <input type="text" name="email" id="email" value="" /> Comments: <textarea name="comments" id="comments" cols="25" rows="3"></textarea> <input type="submit" value="submit" /> </form>
Если ввести этот код в документ HTML, а затем открыть документ в браузере, код будет представлен, как показано на рисунке 20.1.
(рис 20.1) Первый, базовый пример формы Попробуйте использовать ее самостоятельно — введите приведенный выше код в собственный пример документа HTML и загрузите его в браузер. Попробуйте поэкспериментировать с различными элементами управления формы, чтобы увидеть, что с ними можно делать.
Если посмотреть код, то можно увидеть открывающий тег <form>, закрывающий тег </form>, и дополнительный код между ними. Этот элемент содержит два текстовых поля
Что мы здесь имеем?
<form></form>: Эти два тега являются существенными для начала и окончания формы - без них форма Web не существует. Каждая форма должна начинаться и заканчиваться тегами <form> и </form>.Тег <form> может иметь несколько атрибутов, которые будут объяснены на втором шаге, но помните о том, что формы нельзя вкладывать друг в друга.
<input> (должен быть <input />, если используется тип документа XHTML): Этот тег определяет область, где читатель/пользователь может ввести информацию. В рассмотренном выше случае, тег input определяет текстовые поля, где читатель может ввести свое имя и адрес e-mail.Каждый тег input должен иметь атрибут type, чтобы определить, что он будет получать: возможными значениями атрибута являются text, button, checkbox, file, hidden, image, password, radio, reset или submit.
Каждый тег <input> должен также иметь имя, которое может определить кодировщик. Атрибут name информирует получателя данных, куда форма будет отправлена (будет ли это база данных, или сообщение e-mail, присланное администратору сайта через серверный сценарий), как называется информация в поле name для размещения данных формы в базе данных, или в сообщении e-mail, которое может прочитать человек.
Поэтому, если элемент <input> предназначен для name будет иметь форму name="имя" или name="фамилия", и т.д. Если тег <input> предназначен для name будет иметь форму name="email". Чтобы облегчить жизнь себе и тем, кто будет использовать форму, рекомендуется называть элемент <input> семантическим образом.
Под семантическим я понимаю наименование в соответствии с его функцией, как описано выше. Если input предназначен для получения адреса e-mail, назовите его name="email". Если это должен быть реальный адрес читателя/пользователя, назовите его name="реальный адрес".
Чем более точное использование слов, тем легче будет не только кодировать, а затем выполнять задачи обслуживания в будущем, но также для человека или базы данных, получающих форму. Старайтесь быть кратким и точным при определении смысла.
<input> должен иметь также атрибут value. Значение может быть задано пустым - value="" - что говорит обрабатывающему сценарию вставить просто то, что читатель/пользователь вводит в поле. В случае checkbox, radio button , hidden, submit, или атрибута другого типа можно задать значение таким, которое должен показывать окончательный value="yes" для yes, value="submit" для кнопки value="reset" для кнопки сброса ( reset ), value="http://www.opera.com" для скрытого перенаправления, и т.д.Примеры использования атрибута value:
Для пустого значения атрибута value
<input type="text" name="first-name" id="first-name" value="" />Jeniferfirst-name посылается как "Jenifer", когда форма отправляется.Предопределенное значение:
<input type="checkbox" name="mailing-list" id="mailing-list" value="yes" />mailing-list посылается как "yes", когда форма отправляется.<input> можно видеть что-то немного другое - элемент textarea.В область textarea можно вводить произвольный текст. Не только одну обычную строку текста, как в элементе <input>, но в элементе textarea можно ввести несколько строк cols и rows — они требуются для каждого элемента textarea, и определяют, сколько столбцов и строк составляют текстовую область. Значения измеряются в символах.
<input> с атрибутом value="submit". Вместо представления одной строки текстового поля для submit представляет кнопку submit, которая, после нажатия, отправляет форму в то место, в которое форма должна посылать свои данные (в данный момент это вообще не определено, поэтому Итак, вы заполнили показанную выше форму, и щелкнули на кнопке Submit - почему же ничего не произошло, и почему она выглядит так неинтересно и размещена в одной строке? Ответ состоит в том, что мы еще ее не структурировали, или не определили место, где будут собираться данные отправленной формы.
Давайте изменим немного форму:
<form id="contact-form" action="script.php" method="post">
<input type="hidden" name="redirect" value="http://www.opera.com" />
<ul>
<li>
<label for="name">Name:</label>
<input type="text" name="name" id="name" value="" />
</li>
<li>
<label for="email">Email:</label>
<input type="text" name="email" id="email" value="" />
</li>
<li>
<label for="comments">Comments:</label>
<textarea name="comments" id="comments" cols="25" rows="3"></textarea>
</li>
<li>
<input type="submit" value="submit" />
<input type="reset" value="reset" />
</li>
</ul>
</form>
Эта форма при представлении в браузере будет выглядеть, как показано на рисунке 20.2:
(рис 20.2) Второй пример формы - выглядит лучше, но еще не совсем хорошоЗдесь сделаны небольшие добавления к базовой, простой форме. Давайте рассмотрим эти изменения:
<form> имеется несколько новых атрибутов. Был добавлен атрибут id, чтобы не только семантически назвать эту форму, но также чтобы предоставить уникальный идентификатор ID для идентификации формы, чтобы ее было легче оформить стилистически с помощью CSS или, если потребуется, выполнить манипуляции с помощью JavaScript. Можно иметь только один уникальный id на странице, в этом случае мы получаем так называемую contact-form.Submit в первой форме ничего не происходит, это связано с тем, что отсутствует атрибут action или method. Атрибут method определяет, как данные посылаются сценарию, который будет их обрабатывать. Двумя наиболее распространенными методами являются "GET" и "POST". Метод "GET" посылает данные в URL браузера. Если нет специальной причины для использования "GET", вероятно, лучше не использовать его, если требуется послать секретную информацию, так как кто угодно сможет увидеть информацию, пересылаемую через URL. Метод "POST" посылает данные с помощью сценария, который поддерживает форму, либо в сообщении e-mail, которое посылается администратору сайта, либо в базу данных для хранения и последующего использования, а не в URL, как метод "GET". Метод "POST" является более защищенным и обычно
лучшим вариантом (http://www.w3.org/2001/tag/doc/whenToUseGet.html).Если вы озабочены безопасностью данных в форме, например, если вы посылаете номер кредитной карты на сайт магазина, то нужно использовать протокол https с помощью уровня защищенных сокетов (SSL). По сути это означает, что данные будут посылаться через протокол https, а не через протокол http. Посмотрите на URL, когда в следующий раз будете совершать покупку на сайте магазина, или при использовании онлайнового банка — вы, вероятно, увидите в панели адреса https://, а не http://. Различие состоит в том, что соединение https немного медленнее, чем http, но данные шифруются, поэтому при передаче данные будут недоступны злоумышленнику. При необходимости выясните у провайдера Web-хостинга, как они могут обеспечить услуги https и SSL.
action определяет, какой файл сценария данных формы должен быть послан для обработки. Многие Web-хосты будут иметь базовый сценарий Создание серверных сценариев находится за рамками данного курса — свяжитесь со своим поставщиком хостинга, чтобы выяснить, что они могут предложить, или обратитесь за помощью к хорошему программисту.
Вот несколько ресурсов, которые могут помочь, если вы захотите исследовать вопрос создания серверных сценариев:
"hidden" ) полем С целью разделения
Некоторые люди считают, что для разметки формы нужно использовать не неупорядоченный список, а список определений. Другие считают, что список вообще не должен использоваться, а нужно использовать CSS для стилевого оформления тегов <label> и <input>. Читатель может самостоятельно исследовать эти дискуссии и прийти к своему собственному мнению, что будет более семантически правильно. Для данного простого упражнения будет использоваться неупорядоченный список.
id элементов input и textarea, которые имеют такое же значение для атрибутов, как и метки. Это очень удобно, так как не только создает визуальный индикатор назначения каждого поля формы на экране, но также делает поля формы более семантически значимыми. Например, пользователь с недостатком зрения, использующий эту страницу с помощью считывателя экрана, может теперь понять, какому элементу формы соответствует какая метка. Эти id можно использовать также для стилевого оформления отдельных полей формы с помощью CSS.Вторая форма выводится немного лучше, но пока еще достаточно коряво. Надо внести еще несколько дополнений, прежде чем применить некоторое стилевое оформление.
Теперь мы закончим то, что было начато в начале лекции, используя следующую финальную версию примера формы:
<form id="contact-form" action="script.php" method="post">
<fieldset>
<legend>Contact Us:</legend>
<ul>
<li>
<label for="name">Name:</label>
<input type="text" name="name" id="name" value="" />
</li>
<li>
<label for="email">Email:</label>
<input type="text" name="email" id="email" value="" />
</li>
<li>
<label for="comments">Comments:</label>
<textarea name="comments" id="comments" cols="25" rows="3"></textarea>
</li>
<li>
<label for="mailing-list">Would you like to sign up for our mailing list?</label>
<input type="checkbox" checked="checked" id="mailing-list" value="Yes, sign me up!" />
</li>
<li>
<input type="submit" value="submit" />
<input type="reset" value="reset" />
</li>
</ul>
</fieldset>
</form>
Во время представления в браузере эта форма выглядит как показано на рисунке 20.3.
(рис 20.3) Финальная форма примера во всей красеЕще двумя важными элементами, которые были добавлены в эту форму, являются fieldset и legend. Оба эти элемента не являются обязательными, но очень полезны для более сложных форм и для представления.
Элемент fieldset позволяет организовать форму в семантические модули. В более сложной форме можно было бы, например, использовать различные fieldset для информации адреса, информации счета, информации предпочтений заказчика, и т.д. Элемент legend позволяет назвать каждый раздел fieldset.
В эту форму также добавлено немного CSS, чтобы оформить структурную разметку. Это используется в третьем примере формы с помощью внешней таблицы стилей. Двумя наиболее важными задачами, которые выполняет базовый CSS, является добавление полей для выравнивания меток и полей
#contact-form fieldset {width:40%;}
#contact-form li {margin:10px; list-style: none;}
#contact-form input {margin-left:45px; text-align: left;}
#contact-form textarea {margin-left:10px; text-align: left;}
Что он делает? Первая строка оформляет границу элемента ).
В этой лекции рассмотрены три основных шага создания формы в соответствии со стандартами Web. Большая часть мира форм пока не была рассмотрена, и оставлена для самостоятельного исследования. Существуют ключи доступа, флажки и радио кнопки, специальные кнопки
В предыдущей форме третьего шага был добавлен флажок, чтобы показать, как можно использовать дополнительные атрибуты в элементе input для сбора информации, которая находится за рамками
Значения атрибутов checkbox и можно использовать для добавления возможности задавать короткие вопросы и предоставлять читателю список вариантов для выбора (флажки позволяют выбрать несколько вариантов, радио-кнопки только один). Радио-кнопки могут быть очень полезны в форме опроса.
Элемент select, также не рассмотренный в этой лекции, можно использовать для раскрывающихся меню выбора (например, списка стран, или штатов/провинций).
Пришло время написать свою собственную контактную форму.
Дополнительное задание: Чем больше вы будете экспериментировать с элементами формы и различным кодом CSS, тем больше вы узнаете, что можно сделать с простой контактной формой.
Экстра-дополнительное задание: Если вы хотите посетить неизвестные земли, найдите сценарий или используйте сценарий, который предоставляет Web-хост, чтобы послать форму себе самому.
Web дизайнер /разработчик по профессии, фотограф, мобильный
Дженифер Хелен является владельцем и основателем компании Black Phoebe Designs, занимающейся дизайном для Web и мобильных устройств. Он получила степень магистра по Вычислительной технике и мультимедийным системам в Тринити-колледже в Дублине, Ирландия, и изучала Web-дизайн в университете Лос-Анджелеса с 2001 по 2005 гг.. Она участвовала в двух проектах мобильного блоггинга Nikia, Wasabi Lifeblog (2004-2005) и Nokia Urbanista
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.