= Сообщение: 6967 из 8303 ========================================= RU.LINUX = От : Victor Wagner 2:5020/400 31 Dec 02 21:07:54 Кому : Alex Korchmar 31 Dec 02 21:07:54 Тема : Re: M$ может купить Macromedia FGHI : area://RU.LINUX?msgid=wagner.wagner.home+12f9aad7 На : area://RU.LINUX?msgid=ddt.demos.su+3c394722 = Кодировка сообщения определена как: IBM866 ================================= ============================================================================== From: vitus@45.free.net (Victor Wagner)
Alex Korchmar <alx@e-moe.ru> wrote: AK> Victor Wagner <vitus@45.free.net> wrote:
VW>> С какой стати это мое изобретение? Когда я пришел в веб-программирование VW>> лет этак пять назад, мне это показывали как стандартный прием.
VW>> После сабмита проверяешь наличие переменной button1. Если она AK> охрененно. У тебя поля базы даных для выбора:
AK> [id] <select1> - можешь вводить, если помнишь, что, можешь нажать select AK> и выбрать (а там внутри еще и поиск бывает хитрый - и опять все за AK> собой тащить).
Для этого select действительно имеет смысл делать всплывающее окно Javascript-ом. Если там поиск бывает хитрый. Если не бывает, то это честный HTML-ный тэг select. Который, правда, не позволяет вводить.
Hа случай пользователя, у которого JavaScript отключен, кнопку, вызывающую окно поиска делаем не type=button, а type=submit name=select1_choose.
Увидев в пришедшем запросе параметр с именем select1_choose, скрипт генерирует форму похожую на то окно, которое вылезает при открытии окошка Javascript-ом, но 1. Результат выбора сабмитящую на сервер, а не помещающую в opener.form.select1, 2. Прокидывающую через скрытые поля значения полей field1, field2, select2.
В результате имеем, а) пользователь со включенноым JS нажав кнопку рядом с полем select1, получает popup - окошко, в котором он может сделать хитрый поиск, а по нажатию на кнопку "Выбрать" результат его выбора попадает в поле select1 основной формы.
б) у пользователя lynx (или с отключенным JavaScript) форма для хитрого поиска замещает основную форму, но при возврате из нее (посредсвом ее родной кнопки выбрать) все введенные им в другие поля значения автомагически оказываются на месте.
AK> [field1] [field2] <select2> (а это чтоб тебе не пришло в голову упростить AK> дело, вынеся первый выбор на предыдущий уровень интерфейса) [field3] ... AK> <add> <replace> <delete>
Вот эти add replace и delete это три кнопки, которые input type=submit
С именами соответственно add, replace и delete
Скрипт, который обрабатывает результаты ввода в эту форму устроен примерно так (в предположении, что это perl и use CGI)