Thanks for your great help. But I'm finding hard to know the exact syntax of
how to use these functions. Can you tell me exact syntax of  how to use
these functions objectToQueryString and  the function queryStringToObject
given the array name "arrObject" which contains array of objects. 

Waiting for your response.
Thanks in advance.
Regards,
Vijay Potluri


bmsterling wrote:
> 
> You can't store an Object/Array into a cookie, you will get the result you
> are currently seeing.  The code I provided with convert your object into a
> querystring, which can be stored, and stores that and when you want to
> retrieve it, you pass the returned cookie value to the other function and
> it
> changes it back to an Object/Array.
> 
> On 9/25/07, Potluri <[EMAIL PROTECTED]> wrote:
>>
>>
>>
>> Sorry I didn't understand what you are trying to say. How this solves my
>> problem of storing array of objects into the cookie. Can you try on your
>> side of storing array of objects into cookie, so that later when I try to
>> to
>> retrive value from cookie I need to get array of objects but not string
>> which is what happening right now.
>>
>> Thanks in advance.
>>
>> bmsterling wrote:
>> >
>> > Vij,
>> > I am actually using the following functions in an app that uses the
>> cookie
>> > plugin:
>> >
>> > /**
>> >  * @name     sterilizeQueryString
>> >  * @type     function
>> >  * @param     {String} input
>> >  * @desc     Turns a query string into an object
>> >  * @return     Object b
>> >  */
>> > sterilizeQueryString = function(input,splitter,pair){
>> >     try{
>> >         if(typeof input != 'string') return null;
>> >         if(!splitter){
>> >             splitter = "&";
>> >         }
>> >         if(!pair) pair ="=";
>> >         var a = input.split(splitter), b = Array();
>> >         for(var i=0; i < a.length; i++)    a[i] = a[i].split(pair);
>> >
>> >         for(var i = 0; i < a.length; i++) b[a[i][0]] = a[i][1];
>> >
>> >         return b;
>> >     }
>> >     catch(e){
>> >         $.iLogger.log(e.name + ': ' + e.message, 'error',
>> > 'sterilizeQueryString();');
>> >     };
>> > };
>> >
>> > objectToQueryString = function( a , joiner, pair) {
>> >     try{
>> >         var s = [];
>> >         if(!pair) pair ="=";
>> >         if((typeof a == "object")){
>> >             for(var j in a){
>> >                 if(typeof a[j] == "object" && a[j]){
>> >                     s.push(encodeURIComponent(j) + pair + "__" +
>> > objectToQueryString(a[j],"**","##") +"__");
>> >                 }
>> >                 else{
>> >                     s.push( encodeURIComponent(j) + pair +
>> > encodeURIComponent( a[j] ) );
>> >                 }
>> >             };
>> >             return s.join(joiner);
>> >         }
>> >         else{
>> >             return a;
>> >         };
>> >     }
>> >     catch(e){
>> >         $.iLogger.log(e.name + ': ' + e.message, 'error',
>> > 'objectToQueryString();');
>> >     };
>> > };
>> >
>> > queryStringToObject = function(s){
>> >     try{
>> >         if(s && typeof s == "string"){
>> >             s = sterilizeQueryString(s);
>> >             for(var j in s){
>> >                 if(/__(.*)__/.test(s[j])){
>> >                     s[j] = s[j].replace(/__/g,"");
>> >                     s[j] = sterilizeQueryString(s[j],"**","##")
>> >                 };
>> >             };
>> >             return s;
>> >         }
>> >         else{
>> >             return s;
>> >         };
>> >     }
>> >     catch(e){
>> >         $.iLogger.log(e.name + ': ' + e.message, 'error',
>> > 'queryStringToObject();');
>> >     };
>> > }
>> >
>> >
>> > This is the function that is using the previous functions:
>> >
>> > //  if $use is set to cookie, this variable will be used for the cookie
>> > name
>> > var $cookieName = 'dummyData';
>> >
>> > //  if $use is set to cookie, this variable will be used for the cookie
>> > params
>> > var $cookieParams = {expires: 7};
>> > /**
>> >  * @name getSetCookies
>> >  * @example getSetCookies();
>> >  * @param {Boolean} getOnly
>> >  * @desc Purpose of this function is to set and get cookie data
>> >  * @see objectToQueryString
>> >  * @see queryStringToObject
>> >  */
>> > getSetCookies = function(getOnly){
>> >     $.iLogger.log('getSetCookies();');
>> >     try{
>> >         //
>> >         if(getOnly){
>> >             var tempSiteData = $.cookie($cookieName);
>> >             if(tempSiteData){
>> >                 $sitedata = queryStringToObject(tempSiteData);
>> >             }
>> >             else{
>> >                 $.cookie($cookieName,
>> objectToQueryString($sitedata,"&"),
>> > $cookieParams);
>> >             }
>> >         }
>> >         else{
>> >             $.cookie($cookieName, objectToQueryString($sitedata,"&"),
>> > $cookieParams);
>> >         };
>> >     }
>> >     catch(e){
>> >         $.iLogger.log(e.name + ': ' + e.message, 'error',
>> > 'getSetCookies();');
>> >     };
>> > }; // end : getSetCookies
>> >
>> > Don't have time to explain it right now (wanted to at least answer
>> you),
>> > but
>> > if you have questions, I can answer them later on today.
>> >
>> > Ben
>> >
>> > On 9/25/07, Potluri <[EMAIL PROTECTED]> wrote:
>> >>
>> >>
>> >>
>> >> I don't see this is a problem with cookie plugin in particular but
>> this
>> >> is
>> >> problem with cookie itself.
>> >>
>> >> Suppose this is the array
>> >> var arr = [];
>> >> arr.push({name:"vj",rollNo:10});
>> >> arr.push({name:"kr",rollNo:15});
>> >>
>> >> The size of arr is 2 before storing in cookie
>> >>
>> >> I tried to store this array object in a cookie as
>> $.cookie("cookieName",
>> >> arr), and then later when I tried to  access the length of array with
>> >> cookie
>> >> as var tempArr= $.cookie("cookieName")--which should give array object
>> >> named
>> >> "arr".
>> >>
>> >> and then I tried to alert length of array as alert(tempArr.length); I
>> was
>> >> expecting size of array to be 2 but surprisingly its returning 31. I
>> >> printed
>> >> the value of tempArr like alert("arr="+ tempArr+"
>> len="+tempArr.length).
>> >>
>> >> it prints arr=[object Object],[object Object]  len=31.
>> >> When you calculate the each character of [object Object],[object
>> Object]
>> >> it
>> >> returns 31.
>> >>
>> >> Can any one of you come up with quick solution of how to store array
>> of
>> >> array objects in a cookie.
>> >>
>> >> It'll be greatful.
>> >>
>> >> Regards,
>> >> Vijay
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/problem-with-cookie-plugin-when-trying-to-store-array-object-in-cookie-tf4516799s15494.html#a12883618
>> >> Sent from the JQuery mailing list archive at Nabble.com.
>> >>
>> >>
>> >
>> >
>> > --
>> > Benjamin Sterling
>> > http://www.KenzoMedia.com
>> > http://www.KenzoHosting.com
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/problem-with-cookie-plugin-when-trying-to-store-array-object-in-cookie-tf4516799s15494.html#a12885387
>> Sent from the JQuery mailing list archive at Nabble.com.
>>
>>
> 
> 
> -- 
> Benjamin Sterling
> http://www.KenzoMedia.com
> http://www.KenzoHosting.com
> 
> 

-- 
View this message in context: 
http://www.nabble.com/problem-with-cookie-plugin-when-trying-to-store-array-object-in-cookie-tf4516799s15494.html#a12887225
Sent from the JQuery mailing list archive at Nabble.com.

Reply via email to