Трюки с формами

Передача нужной куки в приемщик

Иногда возникает потребность передать в CRM или в систему статистики - куку (cookie)
Начнем с простого примера:
Есть форма, она подсоединена к какой-то CRM и из этой CRM данные потом забираются в систему сквозной аналитики, например Roistat.
Для того чтобы система Roistat могла понять и объединить разные заявки и обращения в один контакт, с заявкой нужно передавать уникальный номер пользователя. Этот номер хранится в cookie, вот его и нужно передать в CRMку.
Передаем в приемщик нужную куку
Сначала считываем куку с нужным именем. Потом во все формы на страницы добавляем скрытое поле с указанным именем и найденным значением куки.
<script type="text/javascript">
$(document).ready(function(){
    /* нам нужно передать куку вот с таким названием */
    var needCookieName = 'roistat_visit';

    /* сюда мы сохраним значение, которое нужно передать */
    var needCookieValue = '';

    /* а вот это имя с которым нужно передать значение */
    var needVarName = 'roistat';
    
    /* сначала найдем в cookie нужно нам значение */
    var value = "; " + document.cookie;
    var parts = value.split("; " + needCookieName + "=");
    if (parts.length == 2) needCookieValue = parts.pop().split(";").shift();

    /* пройдем все формы и добавим в них скрытое поле с нужныv значением cookie */
    $('form.js-form-proccess').each(function(){
        $(this).append('<input type="hidden" name="'+needVarName+'" value="'+needCookieValue+'">');
    });

});
</script>
Теперь по сложнее пример. Нужно передать данные в приемщик, например Telegram и в систему аналитики, например Roistat.
Воспользуемся советом из справочника по Тильде.
Отправить данные в систему аналитики напрямую
Если добавить этот код в конец к предыдущему, и указать URL на который нужно отправлять данные. То после отправки данных в подключенные приемщики они отправятся по указаннному URL
    /* вот эта функция будет вызвана, после отправки данных в основной приемщик */
    window.mySuccessFunction= function($form){
        /* $form - jquery объект ссылающийся на форму */
       var url = 'Адрес на который нужно отправлять данные в системе аналитики';
        $.post(url, $form.serialize(), function(json){
            
        },'json');
    }
   
   
    /* здесь мы говорим обработчику форм, что после отправки данных, нужно вызвать специальную функцию */
    $('form.js-form-proccess').each(function(){
        $(this).data('success-callback', 'window.mySuccessFunction');
    });
Made on
Tilda