FormLister: Отправка писем

Ребята, подскажите, не могу найти/понять.
Создал форму для отправки, всё что сидит в нпутах — уходит в письме без проблем, а нужно ещё передать данные которые просто сидят в дивах. За что/чем эти данные цепляет FormLister? Например:

<div class="item">
    <div class="price">[+price.value+]</div>
</div>

Не работает, в письме пусто. Добавлял и name и классы — не помогает.
В шаблоне письма соответственно;
<p>Стоимость: [+price.value+]</p>

Вот этот параметр тоже не помогает:
&formControls=`price`

Не могу найти ни в примерах ни в документации как передать значения не сидящие в инпутах:(
P.S. Само значение в код формы втыкается скриптом в момент открытия попапа c формой.

8 комментариев

avatar
А что мешает сделать дополнительно инпуты с тайпом хиден и передать эти значения туда?
avatar
Ну, если кошерных решений нет, то придётся делать так, хотя это странно, что такой великий и могучий FormLister не может сделать тривиальную вещь (наверняка может, уверен, но как? — известно только, видимо, автору).

Попробовал вот так:
"price":{
			"price":[+price.value+]
			}

тоже мимо(
Комментарий отредактирован 2021-08-23 15:32:32 пользователем kymage
avatar
Нет, странно это пытаться отправить на сервер не элемент формы. =)
Комментарий отредактирован 2021-08-23 15:35:17 пользователем pochemuchka
avatar
Ну здрасьте, на сервер нужно/можно не только формы отправлять, которые пользователь заполняет, но и другие данные. Странно, как раз, втыкать в формы то, что не требует заполнения пользователем.
avatar
Так он называется — ФормЛистер. Он предназначен именно для работы с формами. В описании так и написано.

Если вы хотите сделать решение, чтобы оно еще и из div'ов отправляло, узнавая данные к примеру по особому классу, то допишите расширение базового контроллера.
avatar
Данные форм в web'е отправляются, исходя из элементов самой формы. Див — это не элемент формы.
Вопросы, пожелания?
Хочешь отправлять данные из хуйпойми откуда — сделай аякс, отправь эти данные, как key:value и прими в вызове runSnippet->('FormLister',[… параметры])
  • 1px
  • 0
avatar
Добавляй тогда скриптом в форму input hidden с нужным значением.
При открытии формы скриптом собирай данные из нужных дивов, и вставляй в форму скрытый инпут. Или отправляй formData аяксом. Типа такого:

let formData = new FormData(form);

const outer = document.querySelector('.customDiv')
if (outer) {
    const priceEl = outer.querySelector('.price')
    if (priceEl) {
        formData.append('price ', priceEl.innerHTML)
    }
    // и все остальные поля
}


    const formOuter = form.parent()
    axios.post(this.action, formData).then(function (response) {
        if (response.data.success) {
            formOuter.innerHTML = response.data.success 
        }
    }


FormLister не цепляет данные из элементов верстки, только из полей отправляемой формы: input, select, textarea и т.д.
Комментарий отредактирован 2021-08-25 23:42:13 пользователем nohc
  • nohc
  • 0
avatar
Именно так и сделал.
Комментарий отредактирован 2021-08-26 15:06:28 пользователем kymage
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.