Передача информации о состоянии в скрытых полях форм HTML

peredacha informacii o sostoyanii v skrytyh polyah form html Сервер PyMailCGI

То, чего вы не видите на странице просмотра, изображенной на рис. 16.12, так же важно, как то, что вы видите. За деталями реализации обращайтесь к примеру 16.14, но замечу, что здесь происходит нечто новое. Номер исходного сообщения, а также имя пользователя и пароль (по-прежнему зашифрованный), переданные этому сценарию в составе URL- ссылки с информацией о состоянии, оказываются скопированными в разметку HTML этой страницы в виде значений скрытых полей ввода формы. Ниже приводится программный код в модуле commonhtml, создающий скрытые поля:

print(‘<form method=post action="%s/onViewPageAction.py">’ % urlroot) print(‘<input type=hidden name=mnum value="%s">’ % msgnum)

print(‘<input type=hidden name=user value="%s">’ % user) # из страницы|иг1 print(‘<input type=hidden name=site value="%s">’ % site) # для удаления print(‘<input type=hidden name=pswd value="%s">’ % pswd) # зашифр. пароль

Как мы уже знаем, скрытые поля, подобно параметрам URL в генерируемых гиперссылках, позволяют встраивать информацию о состоянии внутрь самой веб-страницы. Увидеть эту скрытую информацию можно только в исходном коде разметки страницы, потому что скры
тые поля не отображаются. Но при щелчке на кнопке отправки этой формы скрытые значения автоматически передаются очередному сценарию вместе с видимыми полями формы.

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

Рис. 16.14. Разметка HTML, сгенерированная для страницы просмотра PyMailCGI

 

В результате скрытые поля ввода в разметке HTML, так же как параметры в конце генерируемых URL, действуют как временное хранилище и сохраняют информацию о состоянии, передавая ее между страницами и этапами взаимодействия с пользователем. Оба механизма представляют собой веб-эквивалент переменных в языках программирования. Их удобно использовать, когда приложению требуется что-то передать из одной страницы в другую.

Особенно полезными скрытые поля оказываются, когда невозможно вызвать следующий сценарий с помощью гиперссылки со сгенерированным адресом URL, содержащим параметры. Например, следующее действие в нашем сценарии запускается щелчком на кнопке передачи формы (Next (Далее)), а не на гиперссылке, поэтому для передачи состояния используются скрытые поля. Как и прежде, без этих скрытых полей пользователи вынуждены были бы снова вводить сведения об учетной записи на сервере POP в странице просмотра, если они нужны очередному сценарию (в нашем случае они нужны, если следующим действием является удаление сообщения).

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий