0

我在尝试在网站上添加重定向时遇到问题。我不是一个大专家,所以这就是我寻求帮助的原因。

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

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

饼干怎么了?

好吧,表格在website.com上,如果用户订阅,他会被重定向website.com/whatever.html

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

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

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

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

所以这就是它应该如何工作:

  1. 用户正确输入详细信息,他被重定向并设置了 cookie。
  2. 用户输入的详细信息不正确,他得到默认的 Aweber 错误页面并且他没有被重定向。

这是我现在的代码:

>      $(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>

谢谢 !

4

1 回答 1

0

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

下载文件并使用它。

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

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

<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";
    }
});
于 2013-11-08T18:15:14.933 回答