UMIhelp

Разработка сайта на UMI.CMS => Макросы UMI.CMS => Тема начата: atach от 29 Мая 2015, 14:15:58

Название: Динамическое добавления поля в формах
Отправлено: atach от 29 Мая 2015, 14:15:58
Вопрос такой:
Есть форма, не важно какая к примеру "обратная связь". Как правильно реализовать в ней динамическое добавления поля (т.е. есть одно поле ваши автомобили: появилось, одно, потом нажали кнопку появилось ещё одно, ещё одно и т.д.) и какой механизм обработки его.
Я не прошу решения, просто подсказку и направление куда "плясать".
Название: Re: Динамическое добавления поля в формах
Отправлено: admin от 30 Мая 2015, 14:46:25
Обычно, реализую следующим образом.

1. На уровне html и js страницы с формой, делаем механизм добавления дополнительных полей с именем, которое потом можно подхватить как $_REQUEST данные. Например создать поле <input name="multi_filed[]" /> и копировать его через js.

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

3. Саму форму отправлять не на webforms/send как обычно, а на предварительный кастомный макрос webform/pre_send, который cоберет значения всех полей multi_filed[] и слепив из них одну строчку пишем его в $_REQUEST['data']['new']['multi_result'] и в конце данног омакроса вызываем макрос webforms/send

P.S. можно обойтись без кастомного макроса, организовав объединение всех полей multi_filed в одну строчку на уровне js.
Название: Re: Динамическое добавления поля в формах
Отправлено: atach от 30 Мая 2015, 14:51:54
Обычно, реализую следующим образом.

1. На уровне html и js страницы с формой делаем механизм добавления дополнительных полей, с именем которое потом можно подхватить как $_REQUEST данные. Например создать поле <input name="multi_filed[]" /> и копировать его через js.

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

3. Саму форму отправлять не на webforms/send как обычно, а на предварительный кастомный макрос webform/pre_send, который cоберет значения всех полей multi_filed[] и слепив из них одну строчку пишем его в $_REQUEST['data']['new']['multi_result'] и в конце данног омакроса вызываем макрос webforms/send

P.S. можно обойтись без кастомного макроса, организовав объединение всех полей multi_filed в одну строчку на уровне js.

Большое спасибо ... Схема реализации понятна