Таймер перенаправления при успешной отправке веб-формы
Меня просят ввести автоматическое перенаправление (на домашнюю страницу) на странице подтверждения веб-формы (т.Е. Когда пользователь отправляет данные, он попадает на страницу со словами "Спасибо! Ваше заявление было получено и т. Д."). И меня просят сделать перенаправление через некоторое время, когда прошло, скажем, 10 секунд.
Кажется, мне нужно ввести некоторые изменения js, но я не знаю, как это сделать правильно.
Спасибо вам!
3 answers
Добавьте этот код в webform-confirmation.tpl.php
$(document).ready(function() {
var delay = 10 ;
var url = "http://google.com";
function countdown() {
setTimeout(countdown, 1000) ;
$('.webform-confirmation').html("Redirecting in " + delay + " seconds.");
delay --;
if (delay < 0 ) {
window.location = url ;
delay = 0 ;
}
}
countdown() ;
});
Хорошо, если вы новичок в drupal, я объясню вам это шаг за шагом:
Сначала создайте файл в разделе "сайты/все/темы/ваша тема/js/" под названием auto_redirection.js и внутри него вставьте приведенный выше код. (если у вас нет папки js, просто создайте ее!)
Создайте файл в разделе "сайты/все/темы/ваша тема/шаблоны" под названием веб-форма-подтверждение- "идентификатор формы".tpl.php без кавычек, необязательно, вы можете просто позволить этому webform-confirmation.tpl.php и это будет применяется ко всем подтверждениям веб-форм.
Перейдите к'sites/all/modules/webform/templates/webform-confirmation.tpl.php "и скопируйте содержимое этого файла и вставьте его в свою собственную веб-форму-подтверждение - "идентификатор формы".tpl.php вы уже создали.
3. Внутри файла веб-форма-подтверждение - "идентификатор формы".tpl.php просто добавьте это в конце
drupal_add_js(drupal_get_path('theme', 'yourtheme') . '/js/auto_redirection.js');
Не забудьте заменить "ваша тема" на название вашей темы или подтемы... и поставить теги php для приведенный выше код, по какой-то причине я не могу написать теги php здесь jeje.
Это все, что вам нужно, надеюсь, это кому-то поможет
Используйте этот скрипт вместо этого, если вы хотите отобразить сообщение с благодарностью и счетчик в сообщении.
var counter = 10;
setInterval(function() {
counter--;
if(counter < 0) {
window.location = 'http://www.google.com';
} else {
document.getElementById("count").innerHTML = counter;
}
}, 1000);
Добавьте интервал с идентификатором=количество в сообщении, чтобы отобразить счетчик.
Если вы нашли сценарий здесь: https://stackoverflow.com/a/12498244/3357085