Перейти к содержимому



Объединение форм

#1 v1ex

v1ex
  • Неактивные
  • 225 сообщений
  • Репутация: 0
0

Отправлено 22 Июнь 2009 - 16:08

Короче, такая ситуация.
Имеется страница, есть три формы:
1. Выбор нескольких файлов;
2. Какие-то специфические данные;
3. Какие-то специфические данные;

Вторая и третья форма расположены на вкладках. Какая вкладка открыта, такая форма и отправляется.

Данные первой формы должны, как-бы присоединяться к данным второй или третей формы (т.е. данные первой формы должны отправляться при любых обстоятельствах). Есть идеи, как такое реализовать?

У меня впринципе есть идея - при сабмите формы (второй или третей), через DOM вставлять в скрытый DIV (ну или как нибудь так) поля первой формы. Но почему-то у меня душа к такому подходу не лежит.

P.S.
Не предлагать делать одну форму, а уже на обработчике по каким-либо условиям проверять, какие данные нужно принимать. Просто первая и вторая формы и без этого сложные, и в итоге сам обработчик будет очень запутанный и через пару месяцев мне будет сложно, что-либо в нем понять (просто проект в дальнейшем будет модифицироваться).

 

 

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Форма обратной связи
  2. Wordpress НЕ только для блога или создание различных типов сайтов на этой CMS
  3. Объединение переменных
  4. Как сделать форму заказа html?
  5. Закрытый клуб форума masterWEBS

#2 v1ex

v1ex
    Topic Starter
  • Неактивные
  • 225 сообщений
  • Репутация: 0

Отправлено 22 Июнь 2009 - 16:42

Все, кажется придумал решение:
Вообще не будет ни одной формы, будут чисто поля. При клике на кнопку "отправить", с помощью JS создам форму (не размещая ее в документе), добавлю в нее необходимые данные из полей и отправлю на необходимый URL.
  • 0

#3 yury

yury
  • Пользователь
  • 631 сообщений
  • Репутация: 179

Отправлено 22 Июнь 2009 - 16:57

v1ex,
а чем это отличается от полностью динамической формы на js? которая генерится в зависимости от ответов юзера.
единственная проблема динамической формы - все варианты надо учитывать в "и без того запутанном" обработчике, но и в вашем варианте тоже самое будет.
  • 0

#4 v1ex

v1ex
    Topic Starter
  • Неактивные
  • 225 сообщений
  • Репутация: 0

Отправлено 22 Июнь 2009 - 18:15

Тем, что в полностью динамической форме, она динамически создается, т.е. никаких лишних полей не будет и отправляются только нужные данные. А у меня как-бы две динамические формы + одну статическую надо "приклеить", и если это все запихнуть в одну форму, на сервер уйдет много данных не нужных, и при этом всех их надо обработать в одном обработчике.

А в моем решении, я просто на клиенте напишу парочку if..else, и нужные данные отправлю на один из обработчиков. И в моем варианте "тоже самое" не будет :)


  • 0

#5 yury

yury
  • Пользователь
  • 631 сообщений
  • Репутация: 179

Отправлено 22 Июнь 2009 - 18:32

две динамические формы + одну статическую надо "приклеить",

- это всего лишь визуализация (хоть 10 закладок с виртуальными формами делай).
А фактически: сабмит один (даже если он и шлет данные на разные обработчики, по ситуации), значит и форма реально одна.
Впрочем, вам виднее, как эту конструкцию обозвать, главное, чтоб было удобно и работало. :)
  • 0

#6 v1ex

v1ex
    Topic Starter
  • Неактивные
  • 225 сообщений
  • Репутация: 0

Отправлено 22 Июнь 2009 - 19:09

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

Впрочем, вам виднее, как эту конструкцию обозвать, главное, чтоб было удобно и работало. :)

Точно :)
  • 0

#7 ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 22 Июнь 2009 - 19:19

Я бы сделал так:
1) Есть одна страница. 1 форма.
2) Отправка всех данных идёт одной кнопкой, Ajax. Какие данные отсылать решает функция js.
3) Легче всего радиокнопку поставить, типа одна вкладка или вторая
  • 0

#8 v1ex

v1ex
    Topic Starter
  • Неактивные
  • 225 сообщений
  • Репутация: 0

Отправлено 22 Июнь 2009 - 19:39

Ну я так-же делаю, только у меня отправка не с помощью аякс (не тот случай, когда аякс нужно использовать), и проверяю не через поле, а по ID открытой вкладки :)


  • 0

#9 ZiTosS

ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 22 Июнь 2009 - 20:10

Ну и так можно, всё зависит от нужд. Вот если вкладки будут добавляться, то надо правильно описать функцию проверки по ID.
  • 0

#10 Вячеслав

Вячеслав
  • Пользователь
  • 371 сообщений
  • Репутация: 2

Отправлено 30 Июнь 2009 - 21:18

Ну я так понимаю вкладки на JS? Тогда можно сделать так:
 

<form action=''>

<div id='вкладка_1'>
/***поля первой формы***/
</div>

<div id='вкладка_2'>
/***поля второй формы***/
</div>


<div id='вкладка_3'>
/***поля третей формы***/
</div>

/***кнопка***/
<input type='submit' value='отправить'>
<form>

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


  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru