2012-05-14 21 views
2

私は過去2時間のクッキーについて教えていましたが、いくつかのフォームフィールドの値をクッキーに保存する方法について教えていました。フォームの値をクッキーに保存

私はたくさんの幸運を持っていません。 PHPまたはJSを使用してそれらを生成する必要がありますか? フィードバックや正しい方向へのキックは非常に高く評価されるでしょう!事前に

http://jsfiddle.net/yucM7/

ありがとう!

+0

フォームの値をクッキーに格納することはあまり意味がありません。あなたの最終目標は何ですか?あなたはセッションにそれらを保存する方が良いかもしれません。 – Corbin

答えて

2

ここにはexampleがあります。

htmlコードの変化しているカップルは、そこに必要なのは、jQueryのですcookie plugin

は覚えておいてください。

$(document).on('submit', '#myForm', function() { 
    // serialize our form (get string containing field names and values) 
    dataString = $(this).serialize(); 
    // set new cookie 
    $.cookie('formCookie', dataString); 
    return false; 
}); 

$(document).on('click', '#getCookie', function() { 
    // get serialized string from cookie  
    cookieData = $.cookie('formCookie'); 
    // if cookie exists continue 
    if (cookieData != null) { 
     // split cookieData string into an array of fields and their values 
     cookieArray = cookieData.split('&'); 
     // go through each field and split it too to get field name and it's value 
     $.each(cookieArray, function(k, v) { 
      field = v.split('='); 
      // populate field with data 
      $('#myForm [name="'+field[0]+'"]').val(field[1]); 
     }); 
    } 
    return false; 
}); 
+0

こんにちはケイン、この例をありがとう、コメントは素晴らしいです。フォームにすべてのフィールド値を保存したくない場合は、どうすればよいでしょうか。たとえば、私は最初の名前と最後の名前を保存したがっていますか? – Jamesil

+0

@Jamesil、上記のコードの改訂版はhttp://jsfiddle.net/Xxqb6/3/です。基本的には、すべての入力フィールドや他のフィールドにクラスを追加する場合は、私の例では "サブセット"と同じserialize()関数を使用しますが、$(this).serialize() ( '。サブセット')。serialize(); –

+0

乾杯!うまく働いている。ちょうど最後の質問です。フィールドに「@」を入れて(電子メールアドレスの場合)、それをクッキーに保存すると、 '%40'が返されます。それを防ぐ方法は? – Jamesil

2

あなたは(http://www.w3schools.com/js/js_cookies.aspを参照してください)以下ではJavaScriptを使用してクッキーを設定することができます。

function setCookie(c_name,value,exdays) 
{ 
    var exdate=new Date(); 
    exdate.setDate(exdate.getDate() + exdays); 
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); 
    document.cookie=c_name + "=" + c_value; 
} 

のjQueryを使用したクッキーの設定:

<?php 
    $value = 'something from somewhere'; 
    setcookie("TestCookie", $value); 
:代わりにあなたがすることで、サーバーからのクッキーを設定することができ
$.cookie("example", "foo");

関連する問題