КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Что такое HTTP 14 страницаРезультат можно увидеть на рис. 15.10. Код не выглядит очень сложным, - скорее, наоборот, он ясен и понятен. Но стоит отметить, что он и не отличается красотой и изяществом дизайна и содержимого. Рис. 15.10. Пример формы. Вернее, только ее веб-интерфейс СОВЕТ Многие пользователи любят перемещаться межу полями форм с помощью клавиши Tab. Еда вы хотите указать какое-то особенное место, в которое должен попасть пользователь np«I этом, можете добавить к элементам формы атрибут tabindex. Он может принимать знамени от 0 до 32676. Понятно, что первым будет тот, у кого это значение меньше (таким образом, первый пункт должен иметь tabindex="1", второй — tabindex="2" и т. д.) После установки эти параметров переходы с помощью клавиши Tab будут полностью им соответствовать. Возможно, вы заметили, что в элементе <form> значение атрибута action несколько необычное: используется URL типа mailto:. Это означает, что введенные пользователем данные будут отправлены не просто на какой-то сервер для обработки скриптом, а на конкретный e-mail. Эта возможность чаще всего используется тогда, когда данные не нужно особо обрабатывать либо это можно сделать вручную. Возможен, впрочем, и третий вариант, когда программа-обработчик базируется на почтовом клиенте (в главе 16 это будет обсуждаться чуть подробнее). Дизайн электронных бланков Мм обсудили вопросы создания формуляров, но еще не затрагивали вопрос о том, как сделать их привлекательнее. Для этого придется немного подумать и кое-что написать на XHTML. После этого элементы формы станут выглядеть куда лучше, логичнее и интереснее. В этом разделе мы рассмотрим несколько подходов к оформлению электронных бланков. Проблемы дизайна бланков Центральной идеей оформления электронных формуляров является простота. Простота понимания пользователями, простота переходов с одной группы элемен-тов на другую, логическое разделение по темам. Дело это не такое простое, как кажется. Тут важно понимать еще и психологию посетителей сайта. Нужно чем-то очень хорошо привлечь их, иначе они не будут ничего заполнять. Краткое, компактное изложение того, что требуется от пользователя скорее привлечет его, чем долгие объяснения, извинения и просьбы. Вот некоторые основные советы, которым я рекомендовал бы следовать при создании дизайна формуляров:
Ну и наконец, таблицы стилей тоже никто не отменял. С их помощью можно сделать формы более эффектными. Очень полезно использовать стили, в частности, при разбиении форм на секции. В HTML присутствуют и такие элементы, которые облегчают восприятие форм нестандартными браузерами, мы обсудим их далее. Разрывы строк, абзацы и горизонтальные линии В ориентированном на текстовую информацию XHTML вашим лучшим другом и товарищем при создании дизайна форм является отнюдь не элемент <р>, а, как ни странно, <bг />. А все почему? Потому что очень хочется напрямую редактировать вид формы, не давая вмешиваться браузеру. В результате вам придется проявить чуть больше активности, чем обычно, а ваша страница пополнится довольно большим числом элементов <bг />. Рассмотрим следующий пример: <form> <br /> <br /> <br /> Добавление элемента <br /> приводит к тому, что каждое последующее текстовое поле появляется на новой строке. Это будет выглядеть намного привлекательнее и понятнее (рис. 15.11). Рис. 15.11. Просто добавь <br /> СОВЕТ Обратите внимание на использование текста пояснений рядом с полями ввода. Вещь совер шенно необходимая как в электронных формах, так и в бумажных. Очень хорошей идеей является стандартизация пояснений. Необходимо просто выделять их (жирным шрифтом, курсивом и т. д.), чтобы они были не похожи на остальной текст. Горизонтальные линии Помещая внутри формы горизонтальную линию, вы тем самым четко и ясно говорите пользователю о том, что ниже располагается новый раздел. То ли последуют вопросы на другую тему, то ли окончание формы. В следующем примере добавлены элементы <hr />: <form method="post" action="/cgi-bin/forml.pl "> <br /> Другое<bг />
Если хотите подписаться на нашу рассылку,
<button name="submit" type="submit"> Элемент <hr /> немного растягивает всю форму, это видно из рис. 15.12. Дело в том, что логичность формы и ее хорошо продуманная структура не менее важна, чем краткость представления. Использование абзацев Разбивать текст на абзацы — это хорошо. Удивляет обратное: иногда авторы никак не могут перейти от первого абзаца ко второму, и весь текст идет сплошной чередой. В нем трудно выделить основную мысль, он тяжело читается. Все то же самое касается и форм. Если вы не хотите очень сильно разрывать страницу большим количеством горизонтальных линий, используйте элементы <р>. На рисунке 15.13 представлены дальнейшие улучшения нашей формы, произведенные с помощью разделения ее на абзацы. Рис. 15.12. Несколько горизонтальных линий сделают форму более изящной и логичной Рис. 15.13. Использование элементов <р> для разделения частей формы пустым пространством Рассмотрим исходный код страницы: <form method="post" action="/cgi-Mn/forml.pl"> maxlength="40" /><br /> maxlength="40" /><br /> checked="checked" />Поисковая программа в Другие элементы дизайна форм Больше всего при создании форм раздражает кажущаяся невозможность вырав-нять текстовые поля. Сколько раз нам встречались поля «Имя» и «E-mail», столько раз они были сдвинуты друг относительно друга. Одним из решений проблемы является применение элемента <рге>. Все, что мы разместим между его открывающим и закрывающим тегами, будет в браузере выглядеть точно так же, как при редактировании исходного кода. <рге> позволяет, во-первых, выравнять поля ввода, а во-вторых, избежать применения элементов <br /> в конце <input>. Перед вами пример небрежно сделанной формы: <Р> Фамилия: <input type="text" name="last_name" size="40" maxlength="40" /><br /> maxlength="40" /><br /> Теперь добавляем элемент <рге> и форматируем страницу так, как нам нужно, прямо в исходном коде: <рге> maxlength="40" /> maxlength="40" /> maxlength="40" /> Вы, вероятно, еще помните о том, что пробелы создаются одноименной клавишем, а не клавишей Tab. Как всегда, придется немного повозиться с выравниваем. Проверять себя нужно как можно чаще, просматривая страницу в окне браузера. Тогда I ваша форма будет выглядеть так, как представлено на рис. 15.14 (внизу). Рис. 15.14. Используйте контейнер <рге> для выравнивания элементов формы (нижние три строки рисунка) СОВЕТ По возможности используйте при редактировании страниц, содержащих элемент <рге>, моноширинный шрифт (типа Courier). В этом случае разметка исходного кода будет в точности совпадать с разметкой при просмотре результирующего файла, поскольку <рге> заставляет браузер осуществлять вывод именно таким типом шрифтов. Использование списков в электронных бланках Еще одна маленькая хитрость предлагается вашему вниманию. Вы уже замети ли, что бланк имеет много общего со списками. Когда дело касается бумажных формуляров, то очень часто пункты, вопросы, содержащиеся в нем, даже про нумерованы. Ничто не мешает нам с помощью элементов организации списков превратить обычную форму в настоящий серьезный бланк. Рассмотрим такой пример: Откуда вы узнали об этом сайте?<br /> checked="checked" /> </dd> Мы уже приводили примеры использования списков для организации обычного текста и видели, какой эффект они дают. Здесь это тоже очень даже уместно. Использование таблиц в электронных бланках Таблицы оказываются также весьма полезными при оформлении бланков. С их помощью вы можете управлять расположением различных элементов гораздо эффективнее. Рассмотрим небольшой пример: <form> <table> "last_name" size="40" maxlength="40" </tr><td> size="40" maxlength="40" /></td> t </tr> Можно поработать над свойствами таблицы и добиться того вида, который требу ется. Например, убрать границы, объединить ячейки, столбцы или строки и т. д. Вы все это уже знаете. Структура формы В последние версии стандарта HTML добавились два новых элемента: <fieldset> и <legend>, которые могут использоваться для задания определенной структуры формы. Как выясняется, они также удобны и для нестандартных браузеров, и для задания свойств таблиц стилей. <fieldset> создает группы элементов формы. В некоторых браузерах эти группы еще и заключаются в рамки. В нашем примере в один <fieldset> можно заключить вопросы, касающиеся персональной информации, а в другой — все остальные. Этот элемент очень сильно напоминает <div>, а значит, может быть полезен при работе с таблицами стилей. <legend>, как явствует из его названия, предназначен для создания меток групп элементов. Поскольку это обычный текст, то он может быть не только написан, но и прочитан специализированными речевыми браузерами. В листинге 15.1 представлен пример, который содержит и эти элементы, и многие другие, обсуждавшиеся в этом разделе. Обратите внимание, это XHTML-код той самой страницы, которая изображена в самом начале главы на рис. 15.1. Листинг 15.1. Завершенный пример веб-формы <!DOCTYPE html PUBLIC "\//W3C//DTD XHTML <h1>Книга жалоб и пpeдлoжeний</h1> name="e-mail" size="40" maxlength="40" /> Общедоступность: метки и клавиатурный доступ В последних версиях стандартов HTML и XHTML большое внимание уделяется цементам, обеспечивающим общедоступность веб-страниц. В частности, элемент <label> предназначен для создания связи между формой и предшествующим текстом. При этом элемент <form> обязательно должен иметь атрибут id. В контейнер <1abel> заключается текст, маркирующий форму. У него есть атрибут for, который ссылается на id формы. Рассмотрим пример: <label for="first">Имя:</label><input type="text" name="first_name" id="first" /> Элемент <label> говорит о том, что его содержимое является не просто текстом, а.меткой формы. На самом деле, он служит для обеспечения общедоступности, по скольку, например, речевые браузеры будут произносить метку особым «тоном». Нон для обычных браузеров он полезен тем, что хоть как-то связывает элементы управления и их описания между собой. Можно заключить в <lаbе1> и элемент формы целиком, как это сделано в следующем примере: <lаbеl>Имя: В этом случае уже не нужны ни for, ни id. Хочется упомянуть об одном интересном атрибуте, который можно применять слюбыми элементами электронных бланков. Я имею в виду accesskey. Он позволяет определить клавишу для доступа к элементу. Например: Имя: <input type="text" name="first_name" accesskey="f" /> Резюме В этой главе вы узнали практически все о создании интерфейса электронных бланков с помощью HTML. Вначале мы обсудили принцип их работы, элемент <form> него возможные составляющие. Затем познакомились с текстовыми полями, полями ввода, переключателями, флажками, полями ввода пароля, скрытыми полями и меню. После этого речь пошла уже о таких концептуальных вопросах, как создание интересного, понятного и привлекательного дизайна форм при помощи определенной разметки. Здесь мы обсудили некоторые методы структурной организации электронных бланков и их общедоступности, в частности возможности использования с нестандартными браузерами. В следующей главе вы познакомитесь с CGI-скриптами и тем, как они обрабатывают данные HTML-форм. Глава 16. CGI и сбор данных
В предыдущей главе мы занимались созданием и разработкой интерфейса электронных бланков. Теперь мы зайдем за кулисы и посмотрим, что происходит по ту сторону форм. Увидим, как обрабатываются данные и готовятся к отправке обрат но, пользователю. Этим занимаются специальные небольшие программы, называю' щиеся скриптами. Скрипты хранятся на сервере. Они получают данные с пользовательских компьютеров, которые обращаются к ним с помощью значений атрибута acti on элемента <form>. После этого происходит обработка: считается все, что должно считаться, фильтруется все, что должно фильтроваться, и т. д. Наконец, результаты в какой-то форме отправляются пользователю. В этой главе мы обсудим ком поненты, составляющие прикладную систему, вы узнаете кое-что о скриптах, с помощью которых она работает. Итак, в данную главу вошли следующие разделы:
Что такое CGI? Если вы просто заполните электронный бланк, нарисованный на веб-странице, и будете плясать с бубном вокруг компьютера, вряд ли произойдет какая-то обработка данных этого бланка. Кнопка Отправить на всех формах, написанных нами в предыдущей главе, посылала данные в никуда. Дело в том, что на том конце провода, то есть на сервере, нет скрипта (то есть сценария, программы), способного обработать информацию, поступающую от пользователя. Эта глава посвящена этим са мым обработчикам. В главах 17 и 18 вы узнаете о том, что JavaScript — вполне под ходящая среда для осуществления операций над некоторыми типами данных. Итак, каким же образом информация передается с HTML-страницы на сервер? CGI — это общий шлюзовой интерфейс, созданный для того, чтобы формы дей ствительно стали интерактивными. Форма — это всего лишь руль, педали и панель приборов интерактивности; CGI-скрипты — это ее двигатель. Они отвечают на пользовательские запросы, обрабатывают данные, ведут счетчик посетителей. Таким образом, именно скрипты взаи модейапвуют с пользователями, а формы лишь отражают это взаимодействие. На практике ссылка на CGI-скрипт работает точно так же, как самая обычная ссылка на HTML-страницу. Но скрипт — это, конечно, нечто более сложное, чем вебстраница. Когда запрашивается последняя, файл читается, интерпретируется «выводится браузером. Когда запрос обращается к программе, та начинает выполняться на сервере и осуществляет поиск по базам данных, сортирует, обсчитывает или отправляет электронную почту. Именно скрипт предоставляет все возможности для организации комплексной обработки информации. В случае простейших HTML-форм программы CGI обычно получают значения переменных, производят заданные вычисления и отсылают обратно результаты. Интерфейс CGI довольно сильно изменил представления людей о возможностях веб-сайтов. До его появления страницы были, как говорилось в одной рекламе, «слабыми и безжизненными». С приходом CGI-скриптов страницы буквально ожили, научились реагировать на действия и запросы пользователя, стали динамичными. Языки CGI Вы не сможете написать скрипт на HTML. Вы никогда не напишете его на CSS. Даже на JavaScript вам сделать этого не удастся. Запомните, что все перечисленное - только лишь языки для написания веб-документов. Скрипты пишутся на языках программирования. Среди них можно назвать язык написания сценариев под Unix, Perl, С, AppleScript, а также Visual Basic. Чтобы успешно заниматься веб-программированием, вам необходимо знать хотя бы один из них. Следует помнить, что веб-дизайн и веб-программирование — это не одно и то же! Сценарий можно (и нужно) сохранять в отдельном файле на сервере. Приведем краткий обзор перечисленных языков:
ПРИМЕЧАНИЕ Интерпретируемым языком называется такой язык программирования, который не требует для выполнения сценария или программы трансляции исходного кода в машинный. До момента запуска скрипт выглядит точно таким образом, как он был написан программистом. Только при запуске интерпретатор языка быстро переводит программу в машинные коды, распознаваемые сервером. Этот дополнительный шаг делает процесс работы сценария чуть более растянутым, но зато интерпретируемые программы гораздо проще редактировать и по необходимости обновлять.
Простой CGI-скрипт CGI-программы могут быть как чрезвычайно сложными, так и довольно просты ми. Вот пример простого скрипта, написанного на языке сценариев Unix:
Дата добавления: 2014-12-29; Просмотров: 373; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |