Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перезагрузка формы
 
 автор: deff   (16.02.2009 в 12:36)   письмо автору
 
 

Здравствуйте!
Возникла такая проблема: есть довольно большая форма которую в процессе заполнения требуется перезагружать (при выборе из выпадающего списка). Пока не придумал ничего умнее как сделать это с помощью записи в селекте onchange='this.form.submit()'. Естествеено action в этом случае на ту же страницу.
Вопрос: как при этом передать данные из формы обработчику (в другой файл)? Или (что логичнее) перегрузить страницу другим способом (перезагрузка должна происходить по выбору из выпадающего списка)
Заранее спасибо)

  Ответить  
 
 автор: Axxil   (16.02.2009 в 13:10)   письмо автору
 
   для: deff   (16.02.2009 в 12:36)
 

Спроектировано скорее всего неверно.

Зачем перегружать форму? В зависимости от выбранного селекта добавляются (убираются) новые поля? Тогда может быть лучше сделать это в форме мастера?

Ну если важно именно сделать перезагрузку формы, то submit() вполне нормальный вариант. Только не забываем, граждане с отключенным JS в браузере на смогут заполнить данную форму.

Либо можно вообще без перезагрузки обойтись и сделать всё по модному, на аяксе.

> как при этом передать данные из формы обработчику

Очевидно указанием в action урла обработчика.

  Ответить  
 
 автор: deff   (16.02.2009 в 13:29)   письмо автору
 
   для: Axxil   (16.02.2009 в 13:10)
 

В зависимости от выбранного селекта меняется содержимое другого селекта (выборка из базы по значению, полученному из первого селекта)

Аякс к сожалению пока не знаю........(

При указании урла обработчика в action формы по submit() произойдет не перезагрузка формы, а переход к обработчику.... А мне нужно сначала перегрузить форму (в процессе заполнения) а потом передать данные обработчику.

В форме мастера конечно можно, но имхо это посложнее будет с точки зрения юзера.... так все на одной страничке и понятно: заполнил-отправил.

Так что вопрос пока открыт....)

  Ответить  
 
 автор: Axxil   (16.02.2009 в 13:43)   письмо автору
 
   для: deff   (16.02.2009 в 13:29)
 

> При указании урла обработчика в action формы по submit() произойдет не перезагрузка формы, а переход к обработчику....

Можно в этом обработчике полученные данные записывать в сессию и делать редирект обратно на скрипт формы, где данные из сессии вставлять в поля.

Но это понятно тот ещё изврат. Вообще делать обработчик формы в другом скрипте - практически гарантировать себе проблемы в плане устойчивости полей (т.е. например будет довольно трудно реализовать такую элементарную вещь как серверную проверку на заполненность или корректность email. Опять придётся мудрить с сессиями)

А с помощью AJAX (я использую jquery), задача "В зависимости от выбранного селекта меняется содержимое другого селекта" делается в 5 строк. Очень рекомендую посмотреть данный вариант.

  Ответить  
 
 автор: deff   (16.02.2009 в 14:17)   письмо автору
 
   для: Axxil   (16.02.2009 в 13:43)
 

В принципе вы наверное правы. Самый просотй способ - обработчик в том же скрипте, что и форма.... Наверное сделаю пока так)

А по поводу аякса, если не трудно приведите код для решения этой задачи.... А то сейчас сначала разбираться в этой технологии некогда....

  Ответить  
 
 автор: Axxil   (16.02.2009 в 15:02)   письмо автору
 
   для: deff   (16.02.2009 в 14:17)
 

вот тут я писал похожий пример:

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=56190

  Ответить  
 
 автор: deff   (17.02.2009 в 18:49)   письмо автору
 
   для: Axxil   (16.02.2009 в 15:02)
 

Спасибо большое, все получилось

  Ответить  
 
 автор: nikita2206   (16.02.2009 в 16:06)   письмо автору
 
   для: deff   (16.02.2009 в 14:17)
 

http://www.linkexchanger.su/2009/82.html

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования