2011-07-26 54 views
0

好吧,我们运行的网站上有一个购物车。以下是这种情况:客户来到网站并将产品添加到购物车中。他们去吃饭,把物品放在车里,不用退房。第二天他们想要购买该物品。他们去了网站,并且没有注意到它已经在他们的购物车中,试图再次将它添加到购物车,他们在那里收到一个错误,说它缺货(因为只有一个库存,他们已经在购物车中。 )现在我们失去了销售。Javascript:创建并检查2个饼干

我想要做的是创建2个饼干:一个持续7天(与购物车cookie相同)和一个会话。它的工作方式是这样的:他们的第一次访问创建了2个cookie:一个用于7天,另一个用于会话。现在让我们说客户添加一个产品并关闭他们的浏览器。会话cookie到期,在那里留下7天cookie。现在,当他们回来时,脚本会检查7天Cookie是否存在,但不会检查会话cookie,从而触发我自己的一些代码运行。

基本结构就是这样。

If 7DayCookie Exists { 
    If SessionCookie Exists { 
     End Script; 
    } 
    Else if SessionCookie Does Not Exist { 
     [Insert My Own Code] 
    } 
} 

Else if 7DayCookie Does not Exist { 
    Create SessionCookie; 
    Create 7DayCookie; 
    End Script; 
} 

有人能为我做这个吗?我认为这对任何一个非常擅长cookie和javascript的人来说都是一个不错的选择。

在此先感谢!


最终工作代码。

var wc = readCookie('wfwc'); 
var sc = readCookie('wfsc'); 

if (wc) { 
    if (sc) { } 
    else if (!sc) { 
     alert("It works."); 
    } 
} 

else if (!wc) { 
    createCookie('wfwc','week',7); 
    createCookie('wfsc','session',0); 
} 

回答

2

我强烈推荐从Peter Paul Koch's quirksmode的cookie功能。你需要的3个功能是createCookie,eraseCookie和readCookie。

对于会话cookie,您需要创建一个不包含“expires”标头的cookie。对于7天的cookie,您需要创建一个在7天内过期的cookie。

然后,在JavaScript中,你可以像做一些事情:

theme = readCookie("theme"); 
// if a cookie called "theme" isn't present, initialize. 
if (!theme) { 
    theme = "sky.json"; 
} 

我用PPK的剧本我自己,我没有改变==来===要避免在功能的强制类型转换,虽然它不是严格必要。

+0

是的,我刚刚发现我自己。我正在读它。谢谢。 – Devin

+0

我在上面添加了我的代码。我似乎无法使其工作。 – Devin

+0

您需要使用像firebug(对于Firefox)的调试工具或Chrome开发人员功能来验证Cookie是否正确创建。 –