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.