Do you have a live version I can look at? On 9/25/07, Potluri <[EMAIL PROTECTED]> wrote: > > > > 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. > >
-- Benjamin Sterling http://www.KenzoMedia.com http://www.KenzoHosting.com