Как определить какой блок используется на сайте Тильда? →
Close
Главная страница — Как пробросить значения введённых полей на страницу успеха в виде параметров в Тильде?

Как пробросить значения введённых полей на страницу успеха в виде параметров в Тильде?

Данный код нужно указать в блок: Другое ⟶ T123 ⟶ HTML-код
У формы обязательно должно быть заполнено поле адресом страницы в случае успеха (страница успеха).
<!-- Код для проброса значений из формы в виде ссылки на страницу успеха -->
<!-- https://roman-kosov.ru/form-values-by-link -->

<script>
$(document).ready(function() {
    $(".js-form-proccess[data-success-url]").each(function(index, form) {
        var $form = $(form);
        var fields = '?';
        var formSuccessCallback = $form.attr("data-success-callback");
        if (formSuccessCallback === undefined) {
             formSuccessCallback = 'cb_' + $form.attr('id');
             $form.attr("data-success-callback", formSuccessCallback);
        }
        var cachedCallback = window[formSuccessCallback];
    
        window[formSuccessCallback] = (function() {
            return function() {
                $($form.serializeArray()).each(function(i, el) {
                    if (el.name.indexOf("form-spec-") === -1 && (el.name.indexOf("tildaspec-") === -1 || el.name === "tildaspec-phone-part[]") && el.name.indexOf("formservices") === -1) {
                        if (el.value !== "") {
                            if (el.name === 'phone') {
                                fields += el.name + '=' + el.value.replace(/[\s+\-\(\)]/g, '').trim() + '&';
                            } else {
                                fields += el.name + '=' + el.value + '&';
                            }
                        }
                    }
    
                    var length = fields.length;
                    var utms = window.location.search.split("&").filter(val => val.indexOf('s_') !== 0 && val.indexOf('utm_') !== -1).join("&").replace('?', '');
                    var resultCallbackURL = $form.attr("data-success-url");

                    if (fields !== '?') {
                        resultCallbackURL += fields.substring(0, length-1);
                    }

                    if (utms !== '') {
                        resultCallbackURL += '&' + utms;
                    }

                    $form.data("success-url", resultCallbackURL)
                });

                return cachedCallback($form);
            };
        })();
    });
});
</script>
Тестовая форма
Не откажусь от вашей подде₽жки → /donate ❤️
Жду ваш честный фидбэк ;)
Made on
Tilda