Web форма c добавлением полей по ходу заполнения?

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

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



Есть веб-форма, в которой нужно дублировать некоторые поля или группы полей. В HTML это может быть как один элемент, так и группа элементов в DIV (ну я так представляю по крайней мере). В общем, я не уверен в правильности своих знаний, как работает веб форма, нужны ли уникальные свойства для всех передаваемых полей в дальнейший обработчик или можно сказать jQuery дублировать элемент или группу и все прекрасно передастся дальше и отправится как нужно на обработку, а может это вовсе зависит от того, кто и как будет принимать.

Хотел найти конструктор, но подходящий по функциям пока не нашел. На край думал сделать простым обвесом jQuery обычной веб формы, нужно только понять как правильно это сделать, ну или не правильно, но чтоб работало пока я разбирусь как правильно :)



Формально нужна кнопка (не важно что, ну чтоб нажималось), которая будет дублировать указанное, т.е. группу полей или один элемент. Среди протестированных мной online конструкторов пока обнаружены лишь простейшие логические элементы (если чекбокс нажат — показать то-то), в ZOHO есть псевдо-скрипты внутренние, но с ними я пока не разобрался.



В качестве решения было бы идеально — увидеть конструктор или сервис web-форм, который умеет то, что нужно (идеально отчасти из-за простоты поддержки и обслуживания, т.к. часто такие сервисы дают еще и возможность работать с системами оплат, что множественно упрощает задачу). Конструкторы я уже рассматривал и пока остановился на www.zoho.com/ и formstack.com/, на сколько понял второй не позволяет это сделать (пока обходился тупой логикой), первый вроде как что-то подобное может, на основе подформ, но я пока не понял точно.



С радостью бы почитал что-то, чтоб понять как быть и что делать, если конструктор найден не будет и нужно будет делать все руками при помощи html и jquery. Можно ли дублировать контент, будет ли он правильно передан, а если будет живой пример или даже полу мертвый, вообще будет замечательно!



Заранее спасибо.



UPD:

Нашел полезным для себя Sheep It для jQuery
  • Вопрос задан
  • 5444 просмотра
Решения вопроса 1
tl;dr;

Руками проще. Разберитесь для начала как работают формы и jQuery. Вопрос который вы задаете очень простой и требует самых начальных знаний. Врятли кто-то будет делать и заливать куда-то пример для вас.

Если в кратце: в бэкэнде поля форм идентифицируются по их имени (аттрибут name). Соответственно вам надо скопировать ваш div и поменять name у всех инпутов (например title1, title2...).

Если бэкэнд на php, то есть еще маленький хак. Именуйте поля Одинаково «title[]» (с пустыми квадратными скобками на конце), тогда в php создастся массив, со всеми вашими элементами.

Если вам из того что я написал, что-то не понятно, задавайте уточняющие вопросы. Если все, то сначала нужно подтянуть немного уровень зананий.

htmlbook.ru/
bit.ly/Y8cSo6
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@RedQuark
1) Клонировать функцией jquery в divClon2 (как его создать не описываю)
2) Выбрать всех потомков или только intput из нового блока и добавить уникальности в name
$('divClon2 > *').each(function(){$(this).attr('name', $(this).attr('name'+'1') )});
Фактически, парсеру на стороне сервера важно будет только начало имени, которое раскроет сущность значения из массива
2) Eсли клонируемые элементы простые, часто делают обработчик нажатия на кнопку отправить, который все значения сваливает через любой разделяющий символ в скрытое поле. Т.е. в теги form только один input.
Ответ написан
@max_rip
Лучше не $(this).attr('name'+'1'), а $(this).attr('name'+'[1]')
Да и вообще поля в форме которые дублируются добавить в названия [1], тогда обработчик станет чуть сложнее, но при этом пхп автоматом поймет эти поля как массив. Очень удобная фича пхп +)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы