2011-09-15 4 views
0

私はjquery cookie pluginを使ってオブジェクトをクッキーに保存しています。オブジェクトには、サイトへの訪問者に関する情報を格納するさまざまなプロパティが含まれています。クッキーを取得してこれらのプロパティにアクセスする方法はありますか?あるいは、各データを別々のクッキーに保存する必要がありますか?ここに私のコードは次のとおりです。オブジェクトをクッキーとして設定し、後でそのプロパティを取得する

c.consumerID = data.LoginConsumer.ConsumerId; 
c.surveyCount = data.LoginConsumer.SurveyCnt; 
c.vehicleCount = data.LoginConsumer.VehicleCnt; 
c.sid = data.LoginConsumer.SurveyId; 
c.aid = data.LoginConsumer.ActivityId; 
c.loggedIn = true; 
$j.cookie('consumerCookie', c, { path: '/' }); 

console.log($j.cookie()); //WANT TO RETRIEVE THE VALUES OF THE OBJECT IN THE COOKIE HERE, LIKE c.sid 

答えて

1

クッキーには文字列が格納されているので、オブジェクトから6つのプロパティを保存する場合は、各プロパティを独自の文字列として保存し、それぞれに名前を付けるか、すべてのプロパティ値を1つに結合する必要があります文字列。

JSONライブラリを使用してオブジェクト全体を文字列化し、JSONを読み取ってクッキーを読むことができます。クッキー内のすべてのデータを格納するために例えば、それはこのように動作します:後ろにそれを読むために、

$j.cookie('consumerCookie', JSON.stringify(c), { path: '/' }); 

をそして、あなたはこれを行うことができます:

var c = $j.parseJSON($j.cookie('consumerCookie')); 

注:それはしていませんjQueryには文字列が組み込まれているようですので、古いブラウザの場合はJSON.stringify機能があることを確認する必要があります。

+0

ありがとうございました。 – mheavers

1

あなたは1枚のクッキーにそれをすべて保存することができますが、おそらくJSON、何とかオブジェクトをシリアル化する必要があります。 JSONルートに行く場合は、json2.jsライブラリを使用してください。

また、個々のCookieサイズには制限があります。ほとんどのブラウザでは4kです

あなたが何をしているのか、またPHPを使用しているのであれば、代わりにPHP sessionsを使用して、すべてを$ _SESSION変数の属性に格納することができます。これは、JSONを使用して簡単なAJAX呼び出しで取得できます。

関連する問題