Formit + Ajaxform валидация кастомного элемента select
Добрый день, встала задача сделать форму на сайте с отправкой нескольким адресатам на основе выбранных пунктов элемента select. Все отлично, но есть пару проблем:
1. Не выбирает несколько получателей, вернее выбирает несколько а письмо шлет только 1му получателю. Выборка осуществляется через самописный сниппет который сопоставляет выбранные значения из подготовленного массива с email-ами.
Прошу помочь Вас уважаемое сообщество!
1. Не выбирает несколько получателей, вернее выбирает несколько а письмо шлет только 1му получателю. Выборка осуществляется через самописный сниппет который сопоставляет выбранные значения из подготовленного массива с email-ами.
<?php
$group = array(
'[ [++email3-footer] ]',
'[ [++email3-footer] ]',
'[ [++email3-footer] ]',
'[ [++email2-footer] ]',
'[ [++email2-footer] ]',
'[ [++email2-footer] ]',
);
// массив $group содержит email`ы в том же порядке,
// в котором объявлены options в html форме обратной связи.
$userChoice = $hook->getValue('service');
$hook->setValue('emailAddresses',$group[$userChoice]);
return true;
Код самой формы:<div class="contact-form">
<form action="" method="POST" enctype="multipart/form-data">
<div class="row">
<div class="col-md-12 col-12">
<input type="text" placeholder="Ваше имя" id="fname" name="fname" value="[ [!+fi.fname] ]">
</div>
<div class="col-12">
<input type="text" placeholder="Ваш телефон" id="fphone" name="fphone" value="[ [!+fi.fphone] ]">
</div>
<div class="col-12">
<div id="addressTo">
<select class="selectpicker form-control" data-title="Тема расчета" name="service" multiple>
<option value="0" [ [!+fi.service:FormItIsSelected=`0`] ]>Торговое оборудование</option>
<option value="1" [ [!+fi.service:FormItIsSelected=`1`] ]>Стеновые панели</option>
<option value="2" [ [!+fi.service:FormItIsSelected=`2`] ]>Индивидуальные стойки ресепшн</option>
<option value="3" [ [!+fi.service:FormItIsSelected=`3`] ]>Гнутоклееные изделия</option>
<option value="4" [ [!+fi.service:FormItIsSelected=`4`] ]>Модульные стойки ресепшн</option>
<option value="5" [ [!+fi.service:FormItIsSelected=`5`] ]>Покраска МДФ/Шпон</option>
</select>
</div>
</div>
<div class="col-12">
<textarea class="contact-textarea" placeholder="Текст сообщения" id="msg" name="msg" value="[ [!+fi.msg] ]"></textarea>
</div>
<div class="col-12">
<div class="file_upload">
<span class="button">Обзор</span>
<mark>Файл не выбран</mark>
<input type="file" name="file">
</div>
</div>
<div class="col-12" style="font-size: 13px;margin-bottom: 20px;">Разрешенные форматы файлов(макс. размер-5МБ): .jpg, .png, .pdf, .doc, .docx</div>
<div class="col-12">
[ [!recaptchav2_render] ]
<span class="error_g-recaptcha-response error">[ [!+fi.error.recaptchav2_error] ]</span>
</div>
<div class="col-12">
<button id="submit" class="cont-submit btn-contact btn-style" name="submit">Отправить сообщение</button>
</div>
</div>
[ [!+fi.validation_error_message:!empty=`
<div class="alert">
<p>Пожалуйста, исправьте следующие ошибки:</p>
<ul>
[ [!+fi.error.fname:!empty=`<li><a href="[ [*uri] ]#fname">Поле «Ваше имя» не заполнено</a></li>`] ]
[ [!+fi.error.fphone:!empty=`<li><a href="[ [*uri] ]#fphone">Поле «Ваш телефон» не заполнено</a></li>`] ]
[ [!+fi.error.msg:!empty=`<li><li><a href="[ [*uri] ]#msg">Поле «Текст сообщения» не заполнено</a></li>`] ]
</ul>
</div>`] ]
</form>
</div>
Вызов формы в шаблоне:[ [!AjaxForm?
&snippet=`FormIt`
&form=`@FILE chunks/forms/ajaxform_3.tpl`
&hooks=`groupSelector,recaptchav2,email,FormItSaveForm`
&formName=`Форма Заказать расчет`
&formFields=`fname,fphone,msg,service,file,service`
&fieldNames=`fname==Имя,msg==Сообщение,file==Файл,fphone==Телефон`
&emailSubject=`Сообщение с формы Заказать расчет`
&emailTo=`[ [+emailAddresses] ]`
&emailFrom=`site@masmebid.ru`
&emailTpl=`@FILE chunks/forms/email_tpl_form3.tpl`
&customValidators=`formit2checkfile`
&validate=`fname:required:minLength=^2^,msg:required,fphone:required,service:required,file:formit2checkfile,g-recaptcha-response:required`
&vTextRequired=`Обязательное поле`
&vTextMinLength=`Не менее 2 букв`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
&clearFieldsOnSuccess=`1`
] ]
2. Проблема не выводятся сообщения об ошибках через плейсхолдеры [ [+fi.] ]Прошу помочь Вас уважаемое сообщество!