РНР 5 в подлиннике

Страница 45 из 554


92

Часть I. Основы Web-программирования

<input type=hidden name=email value="admin@microsoft.com."> <п2>Пошлите сообщение администратору:</h2> <input type=text name="text">

<input type=submit name=doSend уа1ие="Отослать">

</form>

Мы подразумеваем, что сценарий анализирует свои входные параметры и посылает текст из параметра text по адресу email. А вот еще один пример использования этого сценария, но уже без скрытого поля. Сравните:

<form action=/cgi/sendmail.cgi method=post> <п2>Пошлите сообщение другу:</h2> Его e-mail: <input type=text name=emailxbr> Текст: <input type=text name="text"xbr> <input type=submit name=doSend уа1ие="Отослать">

Итак, мы задействовали один и тот же сценарий для нескольких разных целей. Еще раз напоминаем, что для сценария безразлично, получает он данные из обычного текстового или же из скрытого поля — в любом случае данные выглядят одинаково.

Часто скрытое поле используют для индикации запуска сценария в результате нажатия кнопки в форме, а не простым набором его URL в строке адреса браузера. Тем не менее это, как уже говорилось, довольно плохой способ — лучше применять именованные кнопки submit.

В некоторых случаях именованные кнопки submit не помогают, и приходится пользоваться скрытым полем для индикации запуска сценария из формы. Происходит это в случае, если форма очень проста и состоит, например, всего из двух элементов— поля ввода текста и кнопки submit (пусть даже и именованной). Практически все браузеры в такой ситуации позволяют пользователю просто нажать клавишу <Enter> для отправки формы, а не возиться с нажатием submit-кнопки. При этом, разумеется, данные кнопки не посылаются на сервер. Вот тогда-то нас и выручит hidden-поле, например, с именем submit: если его значение установлено, то сценарий понимает, что пользователь ввел какие-то данные, в противном случае сценарий был запущен впервые путем набора его URL или перехода по гиперссылке.

Независимый переключатель (checkbox)

<input type=checkbox пате=имя уа1ие=значение [checked]

Этот тег генерирует независимый переключатель (или флажок), который может быть либо установлен, либо сброшен (квадратик с галочкой внутри или пустой соответственно). Если пользователь установил этот элемент, прежде чем нажать кнопку доставки, сценарию поступит строка имя=значение, в противном случае не придет ничего, будто нашего поля и не существует вовсе. Если задан атрибут checked, то флажок будет изначально установленным, иначе — изначально сброшенным.

</form>

>

Гпава 3. CGI изнутри

93

Зависимый переключатель (radio)

<input type=radio пате=имя value=3Ha чение [checked]

Включение в форму этого тега вызывает появление на ней зависимого переключателя (или радиокнопки). Зависимый переключатель — это элемент управления, который, подобно независимому переключателю, может находиться в одном из двух состояний. С тем отличием, что если флажки не связаны друг с другом, то только одна радиокнопка из группы может быть выбрана в текущий момент. Конечно, чаще всего определяются несколько групп радиокнопок, независимых друг от друга. Наша кнопка будет действовать сообща с другими, имеющими то же значение атрибута name — иными словами, то же имя. Отсюда вытекает, что, в отличие от всех других элементов формы, две радиокнопки довольно часто имеют одинаковые имена. Если пользователь отметит какой-то переключатель, сценарию будет передана строка имя=значение, причем значение будет тем, которое указано в атрибуте value выбранной кнопки (а все остальные переключатели проигнорируются, как будто неустановленные флажки). Если указан параметр checked, кнопка будет изначально выбрана, в противном случае — нет.

Чувствуем, вас уже мучает вопрос: почему эта штука называется радиокнопкой? При чем тут радио, спрашивается? Все очень просто. Дело в том, что на старых радиоприемниках (как и на магнитофонах) была группа клавиш, одна из которых могла "залипать", освобождая при этом другую клавишу из группы. Например, если радио могло ловить 3 станции, то у него было 3 клавиши, и в конкретный момент времени только одна из них могла быть нажата (попробуйте слушать сразу несколько станций!). Согласны, что терминология очень спорна, но история есть история...

Кнопка отправки формы (submit)

<input type=submit [пате=имя] value=TeKCT кнопки

Создает кнопку подтверждения с именем name (если этот атрибут указан) и названием (текстом, выводимым поверх кнопки), присвоенным атрибуту value. Как уже говорилось, если задан параметр name, после нажатия кнопки отправки сценарию вместе с другими парами будет передана и пара Р1мя=текст_кнопки (если нажата не данная кнопка, а другая, будет передана только строка нажатой кнопки). Это особенно удобно, когда в форме должно быть несколько кнопок submit, определяющих различные действия (например, кнопки Сохранить и Удалить в сценарии работы с записью какой-то базы данных) — в таком случае чрезвычайно легко установить, какая же кнопка была нажата, и предпринять нужные действия.

>

>



  • Прокол установка читайте здесь.
  • Аренда подъемников ростов смотрите на www.ltd-aps.ru.

  Hostland.Ru

 «Бесплатный хостинг Hostland.Su» © 2006