Передача значения из MigX в шаблон AjaxForm
Добрый день. На сайте создана страница с вакансиями. Каждая вакансия является элементом MigX, которая выводится по шаблону:
Шаблон сейчас выглядит так, но вместо [[+...]] — пустота
...
<div>[[+vacancy_name]]</div>
<span>[[+price]]</span>
...
[[!AjaxForm?
&form=`tpl.vacancyAjaxForm`
...
]]
То есть в каждом элементе (в каждой вакансии) есть форма, выведенная через AjaxForm. Кто-нибудь знает как в шаблон формы tpl.vacancyAjaxForm вставить [[+vacancy_name]] и [[+price]], чтобы эти данные отправлялись на почту?Шаблон сейчас выглядит так, но вместо [[+...]] — пустота
<form action="" id="vacancy-[[+idx]]" >
<input name="vacancy" placeholder="[[+vacancy_name]]" type="text">
...
</form>
Комментарии: 5
1. AjaxForm принимает любые параметры и в шаблоне они доступны как [[+placeholder]].
2. Чтобы данные передавались на почту они должны быть значениями именованного поля формы.
3. Чья фантазия придумала вызывать AjaxForm внутри каждого элемента? Хорошей практикой считает сделать 1 форму и с помощью JS подставлять в неё нужные данные, например название вакансии.
2. Чтобы данные передавались на почту они должны быть значениями именованного поля формы.
3. Чья фантазия придумала вызывать AjaxForm внутри каждого элемента? Хорошей практикой считает сделать 1 форму и с помощью JS подставлять в неё нужные данные, например название вакансии.
1. Так и пишем — [[+idx]], [[+vacancy_name]] и т.д. Но выводится пустота
2. Так и написал
2. Так и написал
<input name="vacancy" placeholder="[[+vacancy_name]]" value="[[+vacancy_name]]" type="text">
3. Каждая форма должна быть идентифицирована уникальным ID, соответствующим номеру элемента modx (то есть с помощью [[+idx]])
1. Но вы же не передаете эти параметры внутрь AjaxForm. Чтобы внутри формы вам был доступен [[+vacancy_name]] нужно передать его при вызове AjaxForm
[[!AjaxForm?
&form=`tpl.vacancyAjaxForm`
&vacancy_name=`hello world`
]]
2. Вы наверное не так поняли Артура. Это очень плохая практика, когда у каждой услуги (товаре или что там еще) создается своя форма при помощи ajaxform. А если их будет 1000? 1000 раз будете на одной странице запускать сниппет ajaxform? Более экономично и разумно, иметь один вызов ajaxform где то в футере, он реализует одну форму. А дополнительно на js вы пишите просто скрипт который при клике на кнопку берет данные конкретно той вакансии, по которой кликнули и вставляет данные в ту форму, которая у вас в футере. И открывает модальное окно с этой формой. Тогда имея всего одну форму вы сможете сделать заказ любой вакансии, потому что данные в форме будут заполнены при клике и будут каждый раз разные.
1. Спасибо огромное, это работает) Я так и думал, что есть какая-то такая фишка
2. Там не очень много вакансий. Это корпоративный сайт одной компании. Вакансий 10 будет. И форма вызывается не по кнопке, а просто стоит в тексте. Но я согласен. Если форм много, то лучше что-то придумать без сотен вызовов форм.
2. Там не очень много вакансий. Это корпоративный сайт одной компании. Вакансий 10 будет. И форма вызывается не по кнопке, а просто стоит в тексте. Но я согласен. Если форм много, то лучше что-то придумать без сотен вызовов форм.
Так-то 10 форм на страницу это тоже не мало.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.