Как отправить на почту JS данные Modx?
Здравствуйте!
Опишу ситуацию, есть блок с товаром.
При нажатии на кнопку выходи Модальное окно тем самым через JS вставляется в форму картинка и заголовок.
Вопрос, как реализовать оправку фото товара и заголовок на почту?
Стоит formit и AjaxForm.
Дополнительно:
Ответы:
Сделайте скрытое поле формы(или скрытую форму) в модальном окне, туда добавляйте путь к картинке и заголовок, в теле письма путь к этому фото прописываете, через AjaxForm по закрытию окна отправляете. Или вам в закрепе к письму изображение нужно?
Как альтернативу посмотрите https://docs.modx.pro/components/fetchit/
- Просто js при нажатии на кнопку с блока с товаром получает картинку и заголовок и вставляет в модельное окно.
Как мне вот отправить картинку и заголовок?
Обычно ModX вставляет данные с плайсхолдера.
А тут JS вставляет картинку в модельное окно без каких либо сохранений в базу данных.
Не понял, вы в форму модального окна вставляете картинку и заголовок, но не знаете как их отправить?
Ну так вставляйте их в скрытые поля. И чанке письма, если такой есть, отобразите имя поля, в которое будет вставляться заголовок. Картинка будет во вложении. Чтобы вложение отправить добавьте форме атрибут enctype="multipart/form-data"
По хорошему, вы в форму на стороне JS должны положить ID карточки товара в скрытое поле.
На сервере, в сниппете AjaxForm нужно добавить хук, который по ID карточки товара получит все необходимые атрибуты этой карточки запросом из базы, считает необходимый файл превьюшки товара с каталога сервера и дополнит тело письма этими дополнительными атрибутами, или бинарником файла картинки/корректной внешней ссылкой на картинку.
Это будет самый корректный вариант реализации.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Для отправки данных на почту в Modx с помощью JavaScript, вам понадобится использовать AJAX запрос к скрипту на сервере, который будет обрабатывать данные и отправлять их на почту. Вот пример того, как это можно сделать:
1. Создайте файл на сервере, который будет обрабатывать AJAX запросы. Допустим, вы создали файл с именем send_email.php. В этом файле вы можете использовать PHP для отправки электронной почты, например, с помощью функции mail().
2. Напишите JavaScript код, который будет отправлять данные на сервер с помощью AJAX запроса. Ниже приведен пример кода:
var data = { name: 'John Doe', email: 'johndoe@example.com', message: 'Hello, this is a test email!' }; var xhr = new XMLHttpRequest(); xhr.open('POST', 'send_email.php', true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.send(JSON.stringify(data)); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { console.log('Email sent successfully!'); } };
3. В файле send_email.php обработайте данные, которые пришли от клиента, и отправьте письмо на указанный адрес. Ниже приведен пример кода, который можно использовать для отправки писем с помощью PHP: