2015-09-03 2 views
1

Так что мне нужен способ захватить значения полей из формы, которая использует плагин контактной формы 7, используя поле Дополнительные настройки на странице администратора. Определенный способ установить cookie с значениями полей будет отличным.Форма для связи 7 - Установить Cookie при отправке

Форма:

<label>Please type your question</label> 
<fieldset class="question"> 
    [textarea your-message id:questionmessage] 
</fieldset> 
<label>Name</label> 
<fieldset class="name"> 
    [text* your-name id:questionname] 
</fieldset> 
<label>Email</label> 
<fieldset class="email"> 
    [email* your-email id:questionemail] 
</fieldset> 

<label>[Submit button]</label> 
<fieldset class="submit"> 
    [submit "Send"] 
</fieldset> 

Дополнительные настройки, который работает до сих пор:

on_sent_ok: "location.replace('page2');" 

Я пробовал:

on_sent_ok: "setcookie('form-email',1,strtotime('+30 days'),COOKIEPATH, COOKIE_DOMAIN,false, false);setcookie('form-name',1,strtotime('+30 days'),COOKIEPATH, COOKIE_DOMAIN,false, false);location.replace('page2');" 

это по-прежнему посылает электронную почту правильно, но делает не перенаправлять на страницу2 (я знаю, что это должно просто установить значения cookie на 1)

ответ

0

Я назвал в окне дополнительных настроек в админке ,

on_sent_ok: "setCookiesAndRedirect("http://www.redirecthere.com");" 

Затем в области формы я добавил несколько javascript для обработки значений полей формы/файлов cookie. Это, вероятно, не очень хорошо, но это работает.

< script type = "text/javascript" > 
 
    window.onload = function() { 
 
    var namefield = document.getElementById("formfullname"); 
 
    var emailfield = document.getElementById("formemail"); 
 
    var firstnamefield = document.getElementById("formfirstname"); 
 
    var surnamefield = document.getElementById("formsurname"); 
 
    var namecookie = getCookie("form-fullname"); 
 
    var emailcookie = getCookie("form-email"); 
 
    var firstnamecookie = getCookie("form-firstname"); 
 
    var surnamecookie = getCookie("form-surname"); 
 
    if (namecookie != "" && namefield != null) { 
 
     namefield.value = namecookie; 
 
    } 
 
    if (emailcookie != "" && emailfield != null) { 
 
     emailfield.value = emailcookie; 
 
    } 
 
    if (firstnamecookie != "" && firstnamefield != null) { 
 
     firstnamefield.value = firstnamecookie; 
 
    } 
 
    if (surnamecookie != "" && surnamefield != null) { 
 
     surnamefield.value = surnamecookie; 
 
    } 
 
    } //end load function 
 

 
function setCookiesAndRedirect(url) { 
 
    var namefield = document.getElementById("formfullname"); 
 
    var emailfield = document.getElementById("formemail"); 
 
    var firstnamefield = document.getElementById("formfirstname"); 
 
    var surnamefield = document.getElementById("formsurname"); 
 
    if (namefield != null) 
 
     setCookie("form-fullname", namefield.value, 30); 
 
    if (emailfield != null) 
 
     setCookie("form-email", emailfield.value, 30); 
 
    if (firstnamefield != null) 
 
     setCookie("form-firstname", firstnamefield.value, 30); 
 
    if (surnamefield != null) 
 
     setCookie("form-surname", surnamefield.value, 30); 
 
    location.replace(url); 
 
    } //end setCookiesAndRedirect 
 

 
function setCookie(cname, cvalue, exdays) { 
 
    var d = new Date(); 
 
    d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); 
 
    var expires = "expires=" + d.toUTCString(); 
 
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 
 
    } //end setCookies 
 

 
function getCookie(cname) { 
 
    var name = cname + "="; 
 
    var ca = document.cookie.split(';'); 
 
    for (var i = 0; i < ca.length; i++) { 
 
    var c = ca[i]; 
 
    while (c.charAt(0) == ' ') c = c.substring(1); 
 
    if (c.indexOf(name) == 0) return c.substring(name.length, c.length); 
 
    } 
 
    return ""; 
 
} </script>
<p>First Name (required)<br /> 
 
    [text* Firstname id:formfirstname] </p> 
 

 
<p>Last Name (required)<br /> 
 
    [text* LastName id:formsurname] </p> 
 

 
<p>Your Email (required)<br /> 
 
    [email* your-email id:formemail] </p> 
 

 
<p>[submit "Download Now"]</p>

Некоторые ссылки, которые помогли мне: cookies in all pages

Cookies in javascript

0

Чтобы правильно перенаправить форму контакта 7, пожалуйста, добавьте этот код.

on_sent_ok: "location = 'http://example.com/';" 

Запомнить начать двойную запятые («) -> одиночные запятые (') -> двойной запятые (») иначе будет ошибка

+0

Я уже получил, что работает в 1-ом on_sent_ok фрагменте кода. Мне нужно знать, как устанавливать файлы cookie, а также перенаправлять. – JakePlatford

+0

Hey JakePlatford с файлом cookie на самом деле, что вы имеете в виду, вы хотите получить какую-то ценность на странице переадресации или что-то еще. –

+0

Мне нужно, чтобы on_sent_ok делал две вещи: во-первых - установите cookie со значением поля формы и THEN second - перенаправляйтесь на другую страницу – JakePlatford

Смежные вопросы