Хотите передать переменную JavaScript из одного шаблона PHP в другой - PullRequest
0 голосов
/ 03 декабря 2018

У меня проблемы с передачей одной переменной JS в другую.Я использую формы HubSpot и их событие onFormSubmit

redirectUrl: "/lp-thank-you-page/",
onFormSubmit: function($form) {
var email = document.getElementById("email-feca4800-6b73-4a38-8f80-1406a1b726b7").value;
}

В основном я хочу использовать переменную электронную почту для другого шаблона страницы, который является страницей благодарности.На странице благодарности я должен перенаправить пользователя на его конкретную электронную почту, чтобы мои параметры URL-адреса выглядели так: login? Req = md-freetier-signup & src = Email и яиспользуя это:

<script>
setTimeout('Redirect()', 5000);
function Redirect()
{
    window.location="https://myurl.com/login?req=md-freetier-signup&src="+email;
}
</script>

Но я почти уверен, что значение вообще не передается этому другому шаблону, и я не уверен, как его передать, чтобы мой код работал.

Спасибозаранее!

Ответы [ 3 ]

0 голосов
/ 03 декабря 2018

Насколько я понимаю, это проблема контекста.Замените var email = document.getElementById("email-feca4800-6b73-4a38-8f80-1406a1b726b7").value; на window.email = document.getElementById("email-feca4800-6b73-4a38-8f80-1406a1b726b7").value;, и window.location="https://myurl.com/login?req=md-freetier-signup&src="+window.email; должно работать.

Это рабочее решение, хотя и не очень хорошее!Избегайте использования объекта «окно» как можно чаще и всегда думайте вместо этого о пространстве имен, когда это возможно, и я не знаю, сколько HubSpot позволяет вам.

0 голосов
/ 03 декабря 2018

Вы можете попытаться передать переменную в локальном хранилище в JS:

localStorage.setItem('email', 'your@email.fr');

, а затем получить ее обратно

localStorage.getItem('email');
0 голосов
/ 03 декабря 2018

Вы можете сохранить эту переменную в сеансе, чтобы получить к ней доступ позже.Это обойдет HubSpot и позволит вам извлекать эти переменные в любое время.

Пример:

redirectUrl: "/lp-thank-you-page/",
onFormSubmit: function($form) {
    var email = document.getElementById("email-feca4800-6b73-4a38-8f80-1406a1b726b7").value;
    sessionStorage.setItem("email",email);
}

И на другой странице:

setTimeout('Redirect()', 5000);
function Redirect()
{
    var email = sessionStorage.getItem("email");
    window.location="https://myurl.com/login?req=md-freetier-signup&src="+email;
}

Если выникогда не используйте переменную сеанса после этого, убедитесь, что удалили ее с sessionStorage.clear();

...