|
|
|
| Здравствуйте!
Возникла такая проблема: есть довольно большая форма которую в процессе заполнения требуется перезагружать (при выборе из выпадающего списка). Пока не придумал ничего умнее как сделать это с помощью записи в селекте onchange='this.form.submit()'. Естествеено action в этом случае на ту же страницу.
Вопрос: как при этом передать данные из формы обработчику (в другой файл)? Или (что логичнее) перегрузить страницу другим способом (перезагрузка должна происходить по выбору из выпадающего списка)
Заранее спасибо) | |
|
|
|
|
|
|
|
для: deff
(16.02.2009 в 12:36)
| | Спроектировано скорее всего неверно.
Зачем перегружать форму? В зависимости от выбранного селекта добавляются (убираются) новые поля? Тогда может быть лучше сделать это в форме мастера?
Ну если важно именно сделать перезагрузку формы, то submit() вполне нормальный вариант. Только не забываем, граждане с отключенным JS в браузере на смогут заполнить данную форму.
Либо можно вообще без перезагрузки обойтись и сделать всё по модному, на аяксе.
> как при этом передать данные из формы обработчику
Очевидно указанием в action урла обработчика. | |
|
|
|
|
|
|
|
для: Axxil
(16.02.2009 в 13:10)
| | В зависимости от выбранного селекта меняется содержимое другого селекта (выборка из базы по значению, полученному из первого селекта)
Аякс к сожалению пока не знаю........(
При указании урла обработчика в action формы по submit() произойдет не перезагрузка формы, а переход к обработчику.... А мне нужно сначала перегрузить форму (в процессе заполнения) а потом передать данные обработчику.
В форме мастера конечно можно, но имхо это посложнее будет с точки зрения юзера.... так все на одной страничке и понятно: заполнил-отправил.
Так что вопрос пока открыт....) | |
|
|
|
|
|
|
|
для: deff
(16.02.2009 в 13:29)
| | > При указании урла обработчика в action формы по submit() произойдет не перезагрузка формы, а переход к обработчику....
Можно в этом обработчике полученные данные записывать в сессию и делать редирект обратно на скрипт формы, где данные из сессии вставлять в поля.
Но это понятно тот ещё изврат. Вообще делать обработчик формы в другом скрипте - практически гарантировать себе проблемы в плане устойчивости полей (т.е. например будет довольно трудно реализовать такую элементарную вещь как серверную проверку на заполненность или корректность email. Опять придётся мудрить с сессиями)
А с помощью AJAX (я использую jquery), задача "В зависимости от выбранного селекта меняется содержимое другого селекта" делается в 5 строк. Очень рекомендую посмотреть данный вариант. | |
|
|
|
|
|
|
|
для: Axxil
(16.02.2009 в 13:43)
| | В принципе вы наверное правы. Самый просотй способ - обработчик в том же скрипте, что и форма.... Наверное сделаю пока так)
А по поводу аякса, если не трудно приведите код для решения этой задачи.... А то сейчас сначала разбираться в этой технологии некогда.... | |
|
|
|
|
|
|
|
|
для: Axxil
(16.02.2009 в 15:02)
| | Спасибо большое, все получилось | |
|
|
|
|
|
|
|
для: deff
(16.02.2009 в 14:17)
| | http://www.linkexchanger.su/2009/82.html | |
|
|
|