2014-11-21 71 views
1

我需要設置一個cookie來保存從第1頁的下拉菜單中選擇的語言值,並將cookie一直運載到第4頁。因此,在第3頁(語言選擇更長有)出現的文本取決於頁面中選擇語言1.javascript設置cookie的語言值

在第1頁語言選擇是:

<select id="languages" onchange="submit();"> 
<option value="en" >English</option> 
<option value="es" selected>Spanish</option> 
<option value="fr">French</option> 
</select> 

的餅乾,應立即儘快頁面打開的第一時間和設置如果用戶在第1頁的下拉菜單中更改語言,則應該更新該值。Cookie應保存至第4頁。

任何想法如何設置cookie,然後閱讀它,使頁面3中的文本以第1頁中選擇的語言顯示?

需要出現在所選語言的文字是不是HTML的一部分,它正在通過JavaScript插入如下:

$(document).ready(function() { 
if ($('page_3').length) { 
$('#my_element').after('<div id="greet"></div>XXXXXX</div>'); 
} 
}); 

的代碼應首先從cookie檢查語言值並更換'XXXXXX',各自的文本取決於語言Cookie值:

var welcome = { 
en:"English", 
es:"Espanol", 
fr:"Francais" 
} 
$(document).ready(function() { 
$('#greet').html(welcome[$('#languages').val()]); 
}); 

任何想法?

+0

你嘗試看這裏媒體鏈接? http://www.w3schools.com/js/js_cookies.asp – Stefan 2014-11-21 13:30:16

+0

你只使用cookie值客戶端? – plalx 2014-11-21 13:33:50

+0

我只需要cookie值「en」或「es」或「fr」 – 2014-11-21 13:35:36

回答

2

既然你已經使用jQuery,我建議考慮看看精彩的cookie的插件:jQuery Cookie Plugin

要設置一個cookie,你可以使用:

$.cookie('name', 'value'); 

以及讀取,甚至簡單:

$.cookie('name'); 

在你的情況下,你將不得不槓桿,選擇的更改事件更改cookie和網頁加載讀取該cookie。

DEMO

而且您的問候語會去是這樣的:

var welcome = { 
    en:"English", 
    es:"Espanol", 
    fr:"Francais" 
}, 

//read previously set cookie value 
language = $.cookie('language'); 

$(document).ready(function() { 

    //use value of cookie as key in welcome object to retrieve the language. 
    $('#greet').html(welcome[language]); 

}); 
+0

如何根據cookie值添加元素'#greet'的文本?我寫了'#languages',但是這是針對頁面1的情況。在頁3中,元素'#languages'不存在 – 2014-11-21 13:47:31

+0

請參閱更新後的帖子。 – PeterKA 2014-11-21 13:54:45

+0

@ adrian.m123,如果這個答案有幫助,不要忘了接受它。請享用! – PeterKA 2014-11-21 14:13:21