I very much understood what you said and tried it. but I'm getting null value
from cookie
var tempRows = new Array();
    tempRows.push({name:"vj",rollNo:10});
    tempRows.push({name:"vj",rollNo:10});
  var v = objectToQueryString(tempRows,"&");
 alert(v); // which prints 
_name##"vj"**rollNo##10&........&each=function%20........
but when I set the cookie to $.cookie('myCookie', v);
and later when I tried to retrieve cookie like alert($.cookie('myCookie')) 
prints the null value.
Not sure why this is happening.. Can u tell me why this happening.
Regards,
Vijay



bmsterling wrote:
> 
> I have a variable $sitedata, an object, that is structured like:
> 
> {
>     'fname':null,
>     'lname':null,
>         moduleLevel: {
>         bPassed: null,
>         bContentComplete: null,
>         iNumAttempts: null,
>         dDateStart: month + "/" + day + "/" + year,//"6/25/2007",
>         dDateEnd: null,
>         sTestTaken: null,
>         sTestPassed: null,
>         sPageViewed: null
>     },
>     lessonLevel:{
>         _0_0:{
>             iLessonRef: 0,
>             iTopicRef: 0,
>             bIsDone: 0,
>             sInlineQuiz: '0',
>             sPageRef: 0
>         }
>     }
> }
> 
> 
> 
> Now, to get the object into a cookie we need to convert it to a
> querysting,
> like:
> 
> objectToQueryString($sitedata,"&")
> 
> which will return something like:
> 
> fname=benjamin&lname=sterling etc....
> 
> If used like below:
> 
> $.cookie('myCookie', objectToQueryString(myObject,"&"));
> 
> Now our cookie is set, now we want to grab it again:
> 
> var tempSiteData = $.cookie('myCookie');
> 
> now we turn our querysting (fname=benjamin&lname=sterling)
> 
> myObject = queryStringToObject(tempSiteData);
> 
> into:
> 
> {
> fname :'benjamin',
> lname :'sterling',
> etc...
> }
> 
> Let me know if you understand.
> 
> On 9/25/07, Potluri <[EMAIL PROTECTED]> wrote:
>>
>>
>>
>> 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.
>>
>>
> 
> 
> -- 
> 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#a12890576
Sent from the JQuery mailing list archive at Nabble.com.

Reply via email to