2011-07-26 85 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是否正確創建。 –