Глава_14_Изучаем_HTML__XHTML. 653Переход на интерактивный режим
Скачать 4.49 Mb.
|
653 Переход на интерактивный режим 14 HTML-формы До сих пор ваше веб-общение было односторонним: от веб-страницы к поль- зователям. Разве не было бы здорово, если бы пользователи смогли отвечать вам? Именно на этом этапе вступают в действие формы HTML. Как только вы снабдите свои страницы формами (прибегнув к определенной помощи веб-сервера), вы сможете собирать отзывы клиентов, принимать по Сети заказы, делать следующий ход в игре в режиме онлайн или проводить интернет-голосование. В этой главе вы познакомитесь с целой группой HTML-элементов, предназначенных для создания веб-форм. Вы также узнаете о том, что происходит на сервере для поддержки форм и как сделать сами формы стильными. Да, только что получил вашу форму. Сейчас мы проверяем ее на сервере, а затем отправим вам ответ. 654 глава 14 Êàê ðàáîòàþò ôîðìû Если вы пользуетесь Интернетом, то точно знаете, как выглядят формы. Но вы, скорее всего, никогда не задумывались о том, что им приходится делать с HTML. По своей сути форма — это веб-страница с областями ввода, в которых вы можете печатать свою информацию. Когда форма представляется на рассмотрение, информация из нее упаковывается и отсылается веб-серверу для обработки серверным сценарием. Что вы получаете после обработки? Другую веб-страницу в качестве ответа, конечно же. Подробно рассмотрим, как это работает. Веб-сервер Браузер упаковывает все данные из формы и отсылает их веб-серверу. fi rstname=buck lastname=bonz item=java number=2 Веб-сервер Вы посещаете в еб-страницу с HTML-формой, заполняете эту форму и пр едставляете информацию на рассмотр ение. Веб-сервер получает данные формы и отдает их серверному сценарию на обработку. Серверный сценарий обрабатывает данные формы и создает новую HTML-страницу, которая используется в качестве ответа, отсылаемого обратно веб-серверу. Веб-сервер отсылает ответ, полученный от серверного сценария, обратно брауз еру. 657 дальше html- формы ×òî ñîçäàåò áðàóçåð Сюрприз! Для создания формы применяется элемент . Сейчас мы поговорим не- много о блочных элементах, которые могут входить в элемент , но есть также на- бор абсолютно новых элементов, которые созданы специально для форм. Каждый из них предоставляет различные способы для ввода информации: поля для ввода текста, флажки, раскрывающиеся списки и т. д. Мы подробно рассмотрим все эти элементы, но сначала вернемся к HTML-коду с предыдущей страницы и посмотрим, как на приведенной ниже странице отображаются элементы и содержимое, расположенные внутри элемента . Форму для конкурса вы найдете в папке chapter14/contest. Откройте ее, еще раз хорошенько рассмотрите, затем загрузите в браузере и примите участие в конкурсе. A B C D Это просто обычный абзац с текстом в форме. Это два текстовых элемента управле- ния для ввода имени и фамилии. В HTML для их создания вы используете эле- мент ‹input›. Это кнопка Submit (Отправить) (кнопка может также называться Submit Query (Послать запрос)). 658 глава 14 contest.php hfhtmlcss Êàê ðàáîòàåò ýëåìåíò 659 дальше html- формы Хорошо, у меня есть HTML-форма, которая не вызывает никаких сложностей. Но где я возьму серверный сценарий? Или я должна его создать? Хороший вопрос. Создание серверных сцена- риев — это совершенно другая тема, совсем не связанная с той информацией, которую мы пред- лагаем вам в этой книге. Сначала мы пытались ее осветить, но все закончилось тем, что книга стала весить больше, чем мы сами (а это нехорошо). Итак, как бы то ни было... Чтобы создать серверный сценарий, нужно знать сценарный язык, или язык программирования. Это обязательно должен быть такой язык, ко- торый поддерживается вашей хостинговой компанией. Большинство компаний поддержи- вают такие языки, как PHP, Ruby on Rails, Perl, Python, Node.js, Java (и другие). Если вы этим заинтересовались, то постарайтесь найти книгу именно о создании серверных сценариев (так- же называемых программами, выполняемыми на сервере). Кроме того, выясните в своей хо- стинговой компании, не предоставляет ли она простые сценарии своим клиентам. Это избавит вас от необходимости самостоятельно создавать серверные сценарии. Что касается этой главы, мы уже разработали все серверные сценарии, которые вам понадобятся. Вам нужно лишь правильно указать URL-адрес соответствующего серверного сценария в атри- буте action элемента 660 глава 14 ×òî ìîæåò âõîäèòü â ôîðìó Вы можете поместить в форму практически любой блочный элемент, но это не то, что важно для нас на данный момент. Нас интересуют специальные элементы формы, которые создают элементы управления в браузере. Мы приводим здесь краткую информацию о наиболее часто используемых элементах формы. Начнем с элемента формы , который имеет много функций. Элемент типа text Элемент типа text использу- ется для ввода одной строки текста. Благодаря дополнительным атрибу- там вы можете задать максималь- ное количество символов и ширину управляющего элемента. < input type="text" name="fullname"/> Элемент ‹input› — элемент б ез содержимого, так что после него не следует никакого содержимого. Для большинства элементов требуется название, используемое серверным сценарием. Чуть позже мы рассмотрим, как это работает. Элемент ‹input› со значением text атрибута type создает на странице браузера элемент управления для ввода текста из одной строки. Элемент типа submit Элемент типа submit создает кнопку, нажав которую вы можете пред- ставить форму на рассмотрение. Когда вы нажимаете эту кнопку, браузер от- сылает форму серверному сценарию на обработку. Для кнопки Submit (Отправить) укажите значение submit для атрибута type элемента ‹input›. По умолчанию кноп- ка называется Submit (Отправить) или Submit Query (Отправить запрос), хотя это название можно изменить (как это сделать, мы по- кажем чуть позже). Обратите внимание, что в обоих случаях используется один и тот же HTML-элемент, но с различными значениями атрибута type. Используйте атрибут type, чтобы указать, что вам нужен ввод информации типа text. обзор элементов формы 661 дальше html- формы Элемент типа radio Элемент типа radio создает переклю- чатели, которые являются взаимоисключа- ющими. Это похоже на старые переключа- тели в машинах: если вы выбираете одно положение, то все остальные становятся не- активными. Элемент управления radio позволяет выбрать только одно положение из предлагаемых. Указывайте элемент ‹input› типа radio для каждого положения переключателя. Все положения, имеющие отношение к данному переключателю, должны иметь одно имя управляющего элемента... ...но каждое положение должно иметь свое значение. Элемент типа heckbox Элемент типа checkbox создает флаж- ки, которые могут быть либо установленны- ми, либо снятыми. Вы можете использовать сразу несколько флажков, при этом можно установить любое их количество. Как и для переключателей, вы используете по одному элементу ‹input› со значением checkbox атрибута type для каждого положения. Взаимосвязанные флажки также используют одно и то же имя. Каждый флажок имеет собственное значение. То же самое здесь: мы все еще используем элемент ‹input›, просто с другим значением атрибута type. Можно не установить ни одного флажка или установить любое их количество. Это отличает флажки от переключателей. 662 глава 14 textarea Элемент гострочное текстовое поле для ввода данных. Если вы вводите больше текста, чем может вме- ститься в одну строку, то справа появляется полоса для прокрутки. Элемент ‹textarea› — это не пустой элемент, то есть у него есть и открывающий и закрывающий теги. Атрибут cols сообщает брауз еру, какой ширины должно быть текстово е поле (ширина опр еделяется количеством символов, которые поместятся в этом поле). Атрибут rows сообщает брауз еру, какой высоты должно быть текстовое поле (высота также задается количеством символов, которые поместятся в этом поле). Текст, находящийся между открывающим и закрывающим тегами, будет по умолчанию отображаться в поле ввода. Используйте атрибут name, чтобы присвоить элементу уникальное имя. cols rows ×òî ìîæåò âõîäèòü â ôîðìó (÷àñòü II) Итак, не каждый элемент формы — это элемент . Существует несколько других элементов, например для меню и для ввода многострочного текста. Почему бы нам не познакомиться с ними перед тем, как продолжать обучение? После этого вы будете знать 90 % информации об элементах форм (и 99 % элементов форм, которые станете часто использовать). еще больше информации об элементах формы Вы также можете задать ширину и высоту textarea с использованием CSS. 663 дальше html- формы option Чтобы создать меню, используйте элемент том Содержимое элемента ‹option› используется для описания пунктов меню. Каждый пункт также включает представляющий его атрибут value. После того как вы щелкнете на меню, появится список его пунктов. select Элемент раскрывающийся список. Он предостав- ляет возможность выбирать предлага- емые варианты ответов. Элемент работает в паре с элементом дающим меню. Элемент ‹select› должен окружать все пункты меню, чтобы сгруппировать их. Как и в других элементах формы, присвойте элементу ‹select› уникально е имя, используя атрибут name. Элемент ‹select› создает раскрывающийся список, который выглядит следующим образом (хотя его внешний вид может очень сильно варьироваться в разных браузерах). 664 глава 14 еще больше информации об элементах формы Î, â ôîðìó ìîæåò âõîäèòü è åùå êîå-÷òî! Ах да, нельзя забывать обо всех тех новых и интересных вещах, которые появились. С выходом HTML5 нам стали доступны еще более специализированные формы для ввода данных. Давайте взглянем: Элемент типа number Элемент типа number вводит ограничение, согласно которому пользователи смогут вводить в соответствующее поле только числа. Вы можете задать минимальное и максимальное число, которое можно будет ввести, посредством опциональных атрибутов. Элемент типа range Элемент типа range аналогичен эле- менту типа number, за исключени- ем того, что он обеспечивает отображение ползунка вместо поля ввода. Элемент типа color Используйте элемент типа color для задания цвета. При щелчке мышью на соответствующем элементе управления на экране появится палитра цветов, из которой вы сможете выбрать требуемый цвет, вместо того чтобы вручную вводить его название или значение. В некоторых браузерах рядом с областью ввода отображаются стрелки, позволяющие увеличивать и уменьшать вводимое число. Используйте атрибуты max и min, чтобы задать мак- симальное и минимальное числа, разрешенные для ввода. Тип number означает, что соотв етству- ющее поле предназначено для ввода только чисел, а не текста. У элементов типа range и number имеется опциональный атрибут step, ко- торый можно использовать, чтобы зада- вать определенные интервалы для значений. Если ваш браузер не будет поддер- живать элемент типа color, то вместо него вы увидите обычное тексто- вое поле ввода. Постойте-ка, HTML5 привносит еще больше замечательных типов ! Не стоит о них забывать! 665 дальше html- формы Элемент типа date Используйте элемент типа date для задания дат, применяя такой элемент управления, как календарь. Данный элемент управления генерирует строку допусти- мого формата даты для отправки серверному сценарию. 665 Пока не все браузеры обе- спечивают полную поддерж- ку данных типов . Типы , рассмотренные на этой и предыдущей стра- ницах, являются новыми в HTML5, и, не смотря на то что сейчас вы можете использовать их во всех веб-страницах, некоторые из них могут отображаться не так, как было пока зано здесь. Элемент типа email Элемент типа email – это всего лишь текстовое поле ввода, однако в некоторых мобильных браузерах, когда пользователь начинает печатать, на экране появляется кла- виатура для ввода адреса электронной почты. Элемент типа tel Элемент типа tel тоже представляет собой всего лишь текстовое поле ввода, но, как и элемент типа email, приводит к появлению на экранах мобильных устройств специальной клавиатуры. Элемент типа url Как и элементы типа email и tel, эле- мент типа url является всего лишь текстовым полем ввода, но приводит к по- явлению на экранах мобильных устройств специальной клавиатуры. Как и в случае с элементом типа color, если ваш браузер не будет поддерживать элемент типа date, то вместо него вы увидите обычное текстовое поле ввода. Все эти три типа элемента являются разновидностью типа text элемента . В настольных браузерах вы не заметите разни- цы между ними. Однако в мобильных брауз ерах может отображаться специальная клавиатура, облегчающая ввод требуемых символов, напри- мер «/», «@» и чисел. Даже в случае с этими специализированными типами вам придется разобраться в том, какие именно значения ожидает получить соответствующий серверный сценарий, и использовать подходящий тип . Будьте осторожны! 666 глава 14 Домашняя смесь Боливия Гватемала Кения Заказать сейчас Выберите кофе: Тип: Кофе в зернах Молотый Дополнительные услуги: Подарочная упаковка Доставка каталога вместе с заказом Доставить по адресу Имя: Адрес: Город: Страна: Почтовый индекс: Телефон: Комментарии клиентов: Сайт кафе Starbuzz развивается. У нас появилась новая идея: создать онлайновую форму заказа наших напитков — Bean Machine. Вы можете это реализовать? Форма должна выглядеть следующим образом. Раскрывающийся список с напитками. Молотый кофе или кофе в зернах (можно выбрать только одно). Подарочная упаков- ка или включить каталог (не выби- райте ни одного или выберите один или два). Информация о заказчике и его адрес, состоящие из шести тек- стовых полей. Поле для коммен- тариев клиентов. Кнопка отправ- ления заказа. bean machine St ar buz z К аф е S ta rb uzz Каф е 667 дальше html- формы Ваша задача — взять магниты с элементами формы и располо- жить их над соответствующим элементом управления на схеме. Для выполнения работы вам не понадобятся все предлагаемые магниты — некоторые останутся незадействованными. Проверьте правильность своего ответа в конце главы и только потом про- должите читать далее. Магниты для разметки > /> t" /> > i t type=" t t " h kb " > i t t "checkbox" > i " > > > " di " > 668 глава 14 Ïîäãîòîâêà ê ñîçäàíèþ ôîðìû äëÿ Bean Machine Перед тем как мы начнем создавать эту форму, откройте папку chapter14/starbuzz и найдите в ней файл form.html. Откройте его и внимательно рассмотрите код. Все, что содержится в этом файле, — это основы HTML. |