我創建了一個簡單的隨機短語生成器,每當用戶單擊「生成」按鈕時,將短語添加到空div。每次點擊都會導致重新生成該短語。這部分工作就像一個魅力。創建新的cookie或添加新的cookie,如果有人使用jquery/javascript(或php?)
我想顯示每個特定人員生成的最後5個短語(而不是最後5個網站生成的用戶)。也就是說,顯示每次用戶點擊「生成」按鈕時生成的最後五個短語的結果。
我想(或許不正確),最簡單的方法是爲每個生成的短語創建一個cookie,然後顯示每個cookie的內容。
所以,我發現了一個jquery.cookie plugin,我設法得到工作,當有人點擊使用該按鈕創建一個cookie:
$(document).ready(function(){
$("#button").click(function() {
$.cookie('cookie_1', $('#phrase_here').text(), { expires: 7 });
})
});
的問題是,我想存儲最後五句話。使用上述內容,每次點擊都會覆蓋Cookie。所以,我認爲這樣的事情會起作用:
if($.cookie('cookie_1') == null) {
$(document).ready(function(){
$("#button").click(function() {
$.cookie('cookie_1', $('#phrase_here').text(), { expires: 7 });
})
});
}
else{
$("#button").click(function() {
$.cookie('cookie_2', $('#phrase_here').text(), { expires: 7 });
})
};
但是,這是發生了什麼事。我點擊按鈕,cookie_1被設置爲div中的文字「#phrase_here」。如果我再次點擊該按鈕,cookie_1將更改爲「#phrase_here」div中的新短語。我認爲我上面的陳述會檢查cookie_1是否存在,如果存在,則創建一個新的,不同的cookie(cookie_2)。如果我點擊按鈕並重新加載頁面,cookie_1仍然設置。但是,如果我點擊該按鈕,它會設置cookie_2而不是cookie_1。不知道爲什麼頁面重新加載是必要的,導致這種行爲(這是我想要的)。
最終,我想使用相同的邏輯存儲5個cookie,如果沒有cookie然後創建一個。有5個之後,然後覆蓋cookie_1。不知道之後會做什麼,因爲我不認爲我可以寫一些會覆蓋cookie_2的東西。
顯然,有一個更好的方法來做到這一點。試圖避免使用數據庫,並在瀏覽器中執行所有操作。我知道這限制了什麼是可能的,並不適合每個人,但沒關係。現在只是一個實驗。
我打算使用JavaScript,jQuery或必要時使用PHP。我只是不確定如何做到最好。希望這個問題有道理。
更新:This code可以很好地創建五個餅乾而不會覆蓋。現在的訣竅是如何在創建五個之後覆蓋第一個cookie,然後覆蓋第二個,等等。
您是否需要最後5個值在瀏覽器會話之後持續存在? – Jon
我會打電話給那個可選的,但不是必需的。 – jonmrich
最近的研究似乎認爲'LocalStorage'可能是比Cookie更好的方式。我還沒有實現它自己,但看看這裏它有很好的瀏覽器支持:http://caniuse.com/localstorage,你可以很容易地存儲陣列,滿足您的要求。 – rtpHarry