Пример формы с двумя наборами полей на FormLister
- Дополнения
- FormLister
- Примеры
- Два набора полей
724
Пример формы с двумя наборами полей на FormLister
В зависимости от значения поля type используются разные правила валидации и шаблоны письма.
Вызов FormLister
[!FormLister? &formid=`basic` &rules=`{ "name": { "required": "Обязательно введите имя" }, "email": { "required": "Обязательно введите email", "email": "Введите email правильно" }, "phone": { "required": "Обязательно введите номер телефона", "phone": "Введите номер правильно" } }` &entRules=`{ "entname": { "required": "Обязательно введите имя" }, "entemail": { "required": "Обязательно введите email", "email": "Введите email правильно" }, "entphone": { "required": "Обязательно введите номер телефона", "phone": "Введите номер правильно" }, "entaddress": { "required": "Обязательно введите адрес" } }` &formControls=`type` &defaults=`{"type": "Физическое лицо"}` &formTpl=`@CODE:` &to=`test@test.com` &subjectTpl=`@CODE:[+type.value+]` &reportTpl=`@CODE:Имя: [+name.value+]
Телефон: [+phone.value+]
Email: [+email.value+]
` &reportEntTpl=`@CODE:Название предприятия: [+entname.value+]
Телефон: [+entphone.value+]
Email: [+entemail.value+]
Юридический адрес: [+entaddress.value+]
` &prepare=`typeSelector` &errorClass=` has-error` &requiredClass=` has-warning` &messagesOuterTpl=`@CODE:[+messages+]` &errorTpl=`@CODE:[+message+]` !]
Prepare-сниппет typeSelector
if ($FormLister->getField('type') == 'Юридическое лицо') { $FormLister->config->setConfig(array( 'rules'=>$FormLister->getCFGDef('entRules'), 'reportTpl'=>$FormLister->getCFGDef('reportEntTpl') )); } else { $FormLister->setField('type','Физическое лицо'); }