САМОУЧИТЕЛЬ PHP 4

       

Скрытое текстовое поле (hidden)


<input type=hidden

  name=èìÿ

  value=çíà÷åíèå

>

Создает неотображаемое (скрытое) поле. Такой объект нужен исключительно для того, чтобы передать сценарию какую-то служебную информацию, до которой пользователю нет дела, — например, параметры настройки.

Пусть, например, у нас имеется многоцелевой CGI-сценарий, который умеет принимать данные пользователя и отправлять их как почтовое сообщение. Поскольку мы бы не хотели фиксировать E?mail получателя жестко, но в то же время и не стремимся, чтобы пользователь мог его менять перед отправкой формы, оформим соответствующий тэг в виде скрытого поля:

<form action=/cgi/sendmail.cgi method=post>

<input type=hidden name=email value="admin.microsoft.com.">

<h2>Ïîøëèòå ñîîáùåíèå àäìèíèñòðàòîðó:</h2>

<input type=text name="text">

<input type=submit name=doSend value="Îòîñëàòü">

</form>

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

<form action=/cgi/sendmail.cgi method=post>

<h2>Ïîøëèòå ñîîáùåíèå äðóãó:</h2>

Åãî E-mail: <input type=text name=email><br>

Òåêñò: <input type=text name="text"><br>

<input type=submit name=doSend value="Îòîñëàòü">

</form>

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


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



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


Содержание раздела