Как отправить данные из JavaScript через Modx на почту?

Как реализовать отправку фото товара и заголовка на почту после вставки их в модальное окно через JavaScript, используя formit и AjaxForm?
  • 20 марта 2024 г. 19:09
Ответы на вопрос 3
Для отправки данных из JavaScript через Modx на почту, можно воспользоваться AJAX запросом к ресурсу, который обрабатывает данные и отправляет их на почту. 

Вот пример подобного скрипта:
```javascript
$.ajax({
    url: 'url_обработчика.php',
    type: 'POST',
    data: { 
        email: '[email protected]',
        message: 'Hello World!'
    },
    success: function(response) {
        console.log('Данные успешно отправлены');
    },
    error: function(error) {
        console.error('Произошла ошибка при отправке данных');
    }
});
```
Где 'url_обработчика.php' - это URL скрипта на сервере, который отправляет данные на почту.

Чтобы реализовать отправку фото товара и заголовка на почту после вставки их в модальное окно через JavaScript с использованием formit и AjaxForm, можно использовать тот же подход с AJAX запросом, только необходимо добавить данные о файлах.

Пример кода:
```javascript
var formData = new FormData();
formData.append('email', '[email protected]');
formData.append('message', 'Hello World!');
formData.append('photo', $('#fileInput')[0].files[0]);

$.ajax({
    url: 'url_обработчика.php',
    type: 'POST',
    data: formData,
    contentType: false,
    processData: false,
    success: function(response) {
        console.log('Данные успешно отправлены');
    },
    error: function(error) {
        console.error('Произошла ошибка при отправке данных');
    }
});
```
Где 'fileInput' - это ID элемента input для загрузки файлов.

На стороне сервера, в скрипте обработчика ('url_обработчика.php'), необходимо получить данные из POST запроса и отправить их на почту. 

Например, в PHP коде скрипта:
```php
$email = $_POST['email'];
$message = $_POST['message'];
$photo = $_FILES['photo'];

// Отправка данных на почту
// код отправки на почту
```

Не забудьте также добавить проверку и валидацию данных на клиентской и серверной стороне перед отправкой на почту.
Сделайте скрытое поле формы(или скрытую форму) в модальном окне, туда добавляйте путь к картинке и заголовок, в теле письма путь к этому фото прописываете, через AjaxForm по закрытию окна отправляете. Или вам в закрепе к письму изображение нужно? 

Как альтернативу посмотрите https://docs.modx.pro/components/fetchit/
Не понял, вы в форму модального окна вставляете картинку и заголовок, но не знаете как их отправить? 
Ну так вставляйте их в скрытые поля. И чанке письма, если такой есть, отобразите имя поля, в которое будет вставляться заголовок. Картинка будет во вложении. Чтобы вложение отправить добавьте форме атрибут enctype="multipart/form-data"
Похожие вопросы