SendIt 1.0.4 - отправка запросов без формы и рекурсивное наследование параметров.
Приветствую! Сегодня выпустил обновление для компонента SendIt. Теперь можно в рамках одного файла наследовать сколько угодно пресетов и отправлять данные на сервер без создания скрытых форм. Подробности ниже.
Рекурсивное наследование
Имя вот такие пресеты
при отправке формы с пресетом custom будет получен вот такой набор параметров
Параметров больше, потому что к заданным в файле добавились ещё стандартные.
Отправка данных БЕЗ формы
Отправить данные можно так
Событие si:init можно заменить на любое нужное вам. Если будете использовать события, которые генерирует не пользователь, при получении ответа лучше установить sitrusted значение 0
Рекурсивное наследование
Имя вот такие пресеты
<?php
return [
'default' => [
'validate' => 'phone:required,age:required,name:required,email:email:required,politics:checkbox:required',
],
'onestepform' => [
'extends' => 'default',
'redirectTo' => 0,
'redirectTimeout' => 3000,
'clearFieldsOnSuccess' => 1,
'fieldNames' => 'age==Возраст,name==Имя,phone==Телефон,email==Почта',
'successMessage' => 'Форма отправлена!',
'validationErrorMessage' => 'Исправьте ошибки!',
],
'custom' => [
'extends' => 'onestepform',
'snippet' => '@FILE snippets/test.php',
'hooks' => '',
'validate' => ''
],
]
при отправке формы с пресетом custom будет получен вот такой набор параметров
[
[successMessage] => Форма отправлена!
[hooks] =>
[emailTpl] => siDefaultEmail
[emailTo] => shev.art.v@yandex.ru
[emailFrom] => noreply@sendit.art-sites.ru
[formName] => Форма по умолчанию.
[emailSubject] => Письмо с сайта sendit.art-sites.ru
[extends] => onestepform
[redirectTo] => 0
[redirectTimeout] => 3000
[clearFieldsOnSuccess] => 1
[fieldNames] => age==Возраст,name==Имя,phone==Телефон,email==Почта
[validationErrorMessage] => Исправьте ошибки!
[validate] =>
[snippet] => @FILE snippets/test.php
[sendGoal] => 0
[counterId] =>
]
Параметров больше, потому что к заданным в файле добавились ещё стандартные.
Отправка данных БЕЗ формы
Отправить данные можно так
document.addEventListener('si:init', (e) => {
SendIt?.setComponentCookie('sitrusted', '1');
SendIt?.Sending?.prepareSendParams(document, 'custom');
})
Событие si:init можно заменить на любое нужное вам. Если будете использовать события, которые генерирует не пользователь, при получении ответа лучше установить sitrusted значение 0
document.addEventListener('si:send:after', (e) => {
const {action, target, result, headers, Sending} = e.detail;
if(result.somedata){
SendIt?.setComponentCookie('sitrusted', '0');
}
})
Надеюсь данные нововведения облегчат вам разработку!
Поблагодарить автора
Отправить деньги