Создание неограниченного количества значений кастомных полей пользователем на фронте
Приветствую, уважаемое сообщество!
Есть такая задача: необходимо дать возможность юзерам в личном кабинете создавать в своем профиле неограниченное количество адресов (или других полей, к примеру, бывшие места работы, тут не принципиально).
В принципе, через родной функционал UpdateProfile и связанных сниппетов получается создавать нужные данные при помощи такой формы:
Есть такая задача: необходимо дать возможность юзерам в личном кабинете создавать в своем профиле неограниченное количество адресов (или других полей, к примеру, бывшие места работы, тут не принципиально).
В принципе, через родной функционал UpdateProfile и связанных сниппетов получается создавать нужные данные при помощи такой формы:
<fieldset id = "addr_1" class = "addr_set" data-empty = "[[!+address_1.region]]">
<legend>Адрес 1</legend>
<label for = "region_1">Регион:</label>
<span class="error">[[+error.address_1.region]]</span>
<input type="text" name="address_1[region]" id="region_1" value="[[!+address_1.region]]" />
<label for = "city_1">Город:</label>
<span class="error">[[+error.address_1.city]]</span>
<input type="text" name="address_1[city]" id="city_1" value="[[!+address_1.city]]"/>
<label for = "address_1">Адрес:</label>
<span class="error">[[+error.address_1.addres]]</span>
<input type="text" name="address_1[address]" id="address_1" value="[[!+address_1.address]]" />
<a href = "#" onclick="event.preventDefault()" class = "address_add_btn" data-id = "addr_2">Добавить ещё адрес</a>
</fieldset>Однако, встаёт вопрос, как дать возможность пользователю создавать неограниченное количество значений для этого поля. Буду благодарен за наводки, быть может, какие-то готовые или схожие решения имеются. Комментарии: 9
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вполне можно через JS создавать сколько угодно полей вида:
просто подменяя суффикс с порядковым номером.
Вопрос тогда становится такой: каким образом потом на этой же странице вывести список всех кастомных полей, чтобы из можно было редактировать? Ведь для этого еще необходимо поставлять плейсхолдеры вида [[!+address_1.address]] в поле value.
То есть в форме все равно придётся руками выводить поля (инпуты) с плейсхолдерами. Как вывести инпуты для редактирования всех существующих полей — вот в чем вопрос :)
Мысль ещё пришла такая: есть обычный сниппет Profile в составе пакета Login. Он может вывести JSON-массив всех полей, плейсхолдер extended. В принципе, можно создать простой сниппет, который получит этот массив, обработает его и выведет формы по шаблону.
Как и вообще ваш сайт, нередко выручал :)