2013-07-24 86 views
1

我有一個php頁面,我希望用戶可以更改某些元素的顏色,下次他加載頁面時,他的選擇應該默認加載。如何永久更改某些元素的顏色?

我正在使用jQuery click()函數來改變顏色,並保存在服務器端的變化我想最好的方法是使用jQuery/json,但我對此是全新的。

我應該有一個單獨的JSON文件與顏色選項存儲?我在網上發現了很多關於jquery/json的故事,但仍然需要一個例子來說明如何完成這個任務。請幫助一個有用的鏈接或代碼示例。

#div01 { 
     background:#008080; 
     color:#ffffff; 
    } 


$('#btnBlue').click(function() { 
    $('#div01').css('background', '#0000ff'); 
    $('#div01').css('color', '#ffffff'); 
}); 

$('#btnRed').click(function() { 
    $('#div01').css('background', '#ff0000'); 
    $('#div01').css('color', '#0000ff'); 
}); 
+1

餅乾嗎?任何理由爲什麼不呢? – JNF

+0

@JNF也許原因可能是 - 用戶可以刪除cookie(例如重新安裝操作系統),並在我的網站上放棄顏色設置。 – bonaca

+0

他可以,但這通常被認爲是可以接受的風險。對於一生中一次用戶重新安裝操作系統 - 用戶會理解需要重新配置一些東西。 – JNF

回答

1

如果你正在尋找一個具體的例子就如何做到這一點,這可能會訣竅。首先,使用以下JavaScript庫:https://github.com/carhartl/jquery-cookie

那麼,這將是你的腳本:

var backgroundColor = $.cookie('backgroundColor'), color = $.cookie('color'); 
$('#div01').css('background', backgroundColor); 
$('#div01').css('color', color); 

$('#btnBlue').click(function() { 
    $.cookie(backgroundColor, '#0000ff'); 
    $.cookie(color, '#ffffff'); 
    $('#div01').css('background', backgroundColor); 
    $('#div01').css('color', color); 
}); 

$('#btnRed').click(function() { 
    $.cookie(backgroundColor, '#ff0000'); 
    $.cookie(color, '#0000ff'); 
    $('#div01').css('background', backgroundColor); 
    $('#div01').css('color', color); 
}); 
+0

Campari,非常感謝您的鏈接,尤其是代碼示例。我會嘗試。聽起來是一個解決方案。 – bonaca

4

你需要在某個地方堅持這些元素的狀態,而這是不可能的。

要堅持這種狀態,您需要確定是使用客戶端存儲還是服務器端持久性。

如果您只想在瀏覽器中存儲數據,那麼您可以考慮cookie或html5 localStorage,但缺點是一旦設置了所有使用瀏覽器的用戶將會獲得更新的狀態。

如果你在擁有網站的用戶跟蹤,那麼你可能有關於使用服務器端的持久性存儲狀態與當前用戶

+0

Arun,我寧願將設置存儲在服務器端。這是否意味着我必須有一個數據庫? – bonaca

+0

@SunSky是的,你將不得不在服務器中使用某種存儲...不必是RDBMS –

+0

@SunSky但你有你的網站用戶跟蹤 –

相關問題