提交后的Cookie重定向问题(表单)

时间:2013-11-08 16:29:57

标签: javascript jquery redirect cookies aweber

我想在网站上添加重定向问题。我不是一个大专家,所以这就是我要求帮助的原因。

在此处显示代码之前,问题以及我希望如何工作。

所以,我在我的网站上添加了一个Aweber表单,其中有两个字段名称和电子邮件+提交按钮。基本上,如果提交成功,则用户将被重定向到另一个页面,并且将设置cookie。

Cookie有什么用?

表单位于 website.com ,如果用户获得订阅,则会重定向 website.com/whatever.html

此外,如果他订阅,下次他进入 website.com 时,他将自动重定向到 website.com/whatever.html

好的,所以我有了这个主要想法,但我有一个问题,它正常工作。

基本上,现在它会重定向用户,即使他输入了错误的详细信息,例如姓名:JHKJHKhj和电子邮件:jkhkjhkjhkhjk

如果他输入这些(错误的)这些细节,他应该进入由Aweber设置的错误页面,但现在无论如何他都会被重定向。

这就是这应该如何运作:

  1. 用户正确输入详细信息,他被重定向并且cookie设置为。
  2. 用户输入的详细信息不正确,他获得了默认的Aweber错误页面,并且没有重定向。
  3. 现在是我的代码:

    >      $(document).ready(function() {
    >         $('#subscribe1').show() 
    >         
    >           if (!readCookie('hide')) {
    >           }
    >         
    >           else {
    >             window.location = "http://website/whatever"
    >           }
    >         
    >         
    >           $('#sendbtn').click(function() {
    >             window.location = "http://website/whatever"
    >             createCookie('hide', true, 365)
    >             return false;
    >           });
    >         
    >         });
    >         
    >         
    >         
    >         function createCookie(name,value,days) {
    >           if (days) {
    >             var date = new Date();
    >             date.setTime(date.getTime()+(days*24*60*60*1000));
    >             var expires = "; expires="+date.toGMTString();
    >           }
    >           else var expires = "";
    >           document.cookie = name+"="+value+expires+"; path=/";
    >         }
    >         
    >         function readCookie(name) {
    >           var nameEQ = name + "=";
    >           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,c.length);
    >             if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    >           }
    >           return null;
    >         }
    >         
    >         function eraseCookie(name) {
    >           createCookie(name,"",-1);
    >         }
    

    这是Aweber代码的一部分

    <form method="post" class="af-form-wrapper" action="http://www.aweber.com/scripts/addlead.pl"  >
    <div style="display: none;">
    <input type="hidden" name="meta_web_form_id" value="522321120" />
    <input type="hidden" name="meta_split_id" value="" />
    <input type="hidden" name="listname" value="jenselter" />
    <input type="hidden" name="redirect" value="http://website.com/whatever" />
    
    <input type="hidden" name="meta_adtracking" value="My_Web_Form" />
    <input type="hidden" name="meta_message" value="1" />
    <input type="hidden" name="meta_required" value="name,email" />
    
    <input type="hidden" name="meta_tooltip" value="" />
    </div>
    

    谢谢!

1 个答案:

答案 0 :(得分:0)

用于cookie管理谷歌有一个名为jcook.js的轻量级javascript文件 http://code.google.com/p/jcook/downloads/detail?name=jcook.js

下载文件并使用它。

我举一个小例子来做类似的任务。

您的表单将如下所示输入姓名和电子邮件。

<form method="POST" action="http://www.aweber.com/scripts/addlead.pl" id="inputForm">
    <input name="name" />
    <input name="email" />
    <button id="authorize">authorize</button>
</form><!--end of the form-->

你的jquery将是

$(document).ready(function(){
    $("#authorize").click(function(){
        var name = $("input[name='name']").val();
        var email = $("input[name='email']").val();

        $.ajax({
            url: "http://www.aweber.com/scripts/addlead.pl",
            data: {name: name, email: email},
            async: false,
            success: function(data){//when you will get the successful authorization
                COOKIES.createCookie("hide", true, 365);//COOKIES IS AN OBJECT IN THE JCOOK.JS TO MANAGE COOKIES
                window.location.href = "http://website/whatever";
            }
        });            
    });

    //if cookie exists
    if(COOKIES.readCookie('hide') != null){
        window.location.href = "http://website/whatever";
    }
});