|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Victor Wagner 2:5020/400 31 Dec 2002 22:07:55 To : Alex Korchmar Subject : Re: M$ может купить Macromedia -------------------------------------------------------------------------------- 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) if ($cgi->param('select1_choose')) { do_fallback_for_select1($cgi); } elsif ($cgi->param('select2_choose')) { do_fallback_for_select2($cgi); } elsif ($cgi->param('delete')) { do_delete($cgi); } elsif ($cgi->param('replace)) { do_replace($cgi); } else { # Если ни одну кнопку не жали, а жали Enter, действие по умолчанию # add do_add($cgi); } AK> - вполне, в общем-то, частая задача. Ты не смеши меня. У меня бывают формы, где подобных кнопок, вызывающих окошки для хитрого выбора под 20 штук. И все это прекрасно работает. В том числе и в lynx. Правда, интерфейс, который работает в lynx не всем дают. Ровно потому что там кнопок 20 а это для простого юзера немножко слишком много. А для простого юзера типичное число кнопок 8-10 из которых 3-4 это submit-ы вызывающие то или иное действие, а остальные - кнопки, которые в случае наличия JS открывают попап окна. AK> охренненная находка - селектором выбирать действие единственного submit'а. Кто тебе это предлагал? Ты это, все-таки читал бы что тебе пишут. Подозреваю что сам ты в эту область просто не лазал, а говоришь со слов какого-нибудь веб-дизастера, который учился web-программированию по книжке DHTML для чайников за 15 минут. AK> А главное чего ради - ради одного из тыщи? AK> вот конкретно вебмагизин сделав с таким "интерфейсом" - скорее всего AK> потеряешь больше посетителей, чем приобретешь за счет тех, у кого ничего AK> кроме lynx отродясь не водилось. Понимаешь ли, Алекс, не все на свете измеряется в деньгах, хитах и показах баннеров, особенно последних. У программиста должно быть самоуважение. Вот его можно потерять, если писать так как ты предлагаешь. Если не принимать во внимание одного из тысячи. Еще можно потерять умение решать задачи usability в условиях жестких технических ограничений. Тогда получится что следующая более сложная форма будет работать только в одной конкретной версии одного конкретного браузера. И таки ее придется делать три-четыре версии. И терять в три-четыре раза больше человеко-часов на разработку. -- пользователь Ю. Конечный из г. Великоламерска. --- ifmail v.2.15dev5 * Origin: Free Net of Leninsky,45 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1517812f9aad7.html, оценка из 5, голосов 10
|