2011-07-06 17 views
1

現時点ではサイトを構築中です。ユーザーの選択に基づいてコンテンツを表示

レイアウトには、国ごとに3つのフラグがあります。

私は、ユーザーが選択した内容に基づいてコンテンツを表示し、サイトに戻ってくるたびにその選択を保持する方法を考えています。

初めてサイトにアクセスするとデフォルトの英語が表示されますが、フラグをクリックすると変更されます。

私はJavaScriptとクッキーを使用しなければならないので、私は周りを見ていて、何も見ていないようです。

おかげ

+0

サイトはHTMLでのみ書かれているのですか、または何らかのバックエンド技術が使用されていますか(PHP、Java、Ruby)???その場合は、ローカリゼーションオプションがあります。また、あなたの評価で正しいです。ユーザーの設定を保存するにはCookieが必要ですが、Cookie値を使用してサイトを表示する言語を判断するには、バックエンド(またはWebサーバー)が必要になります。 –

答えて

0

これを行うための(おそらく)唯一の2つの方法があります。

  1. クッキー(すなわち、主に匿名ユーザーが)
  2. ログインしてユーザーを登録すると、

必要に応じて、クッキーで十分であると思われます。

http://www.quirksmode.org/js/cookies.htmlは、最初から最後まで読んでおく価値があります。

0

私はどのようにすればいいのか抽象的な考えを示しています。 HTMLを書くには、フラグをクリックして要求を送信するとブラウザのCookieにフラグのIDを設定するjavascript関数を記述します。

function setCookie(flag_id) //call this when the flag is clicked 
{ 
    var allcookies = document.cookie; 
    if(allcookies) 
    { 
      document.cookie += ';flagId=' + flag_id; 
    } 
    else 
    { 
     document.cookie='flagId=' + flag_id; 
    } 
/*submit the form or whatever you would like to do when the flag is clicked*/ 
} 

これはクライアント側のものです。 Cookieの有効期限を指定することもできます。詳しくは、w3schoolsのWebサイトを参照してください。 Cookieはブラウザに保存され、リクエストごとにサーバーに送信されます。

サーブレットを使用している場合は、次のコードを使用してdoPostまたはdoGet(クライアントからの最初の要求があった場合)でCookieを取得してください。

..... 
Cookies[] cookies = request.getCookies(); 
String flagId = null; 
if(cookies != null) 
{ 
    for(String cookie:cookies) 
    { 
     if(cookie.getName().equals("flagId")) 
      { 
      flagId = cookie.getValue(); 
     } 
    } 
} 
//use the flag id to decide your content here.. 
.... 

これはあなたの質問にお答えします。

関連する問題