ugrás a tartalomhoz

Egy sütiben több érték tárolása JavaScripttel

zoliky · 2008. Jún. 6. (P), 13.53
  1. document.cookie = "accordion=container_1";  
  2. document.cookie = "accordion=container_2";  
A masodik sor felulirja az elsot. Miert tortenik ez?
 
1

Re

stageline · 2008. Jún. 6. (P), 14.09
Utalom a javascriptet de komolyan egy valtozonak akarsz 2 fele erteket adni? Hozzáfűzni tudod max:

1. document.cookie = "accordion=container_1";
2. document.cookie += "accordion=container_2";
2

ok

zoliky · 2008. Jún. 6. (P), 14.12
Ha igy irom:
  1. document.cookie = "accordion=container_1";  
  2. document.cookie = "accordion2=container_2";  
Akkor ket suti jon letre. Nekem csak egy sutire van szuksegem amelyben tobb erteket tarolok. Peldaul szeretnek letrehozni egy "accordion" nevezetu sutit amelyben tarolom a kovetkezoket: accordion_1, accordion_2, accordion_3, stb...

A hozafuzes nem mukodik, csak az elso "container_1" kerul be az Accordion nevezetu sutibe.
3

Re

stageline · 2008. Jún. 6. (P), 14.19
Szerintem ahogy a php esetén javascriptnél sem tárolhatsz egy cookie-n belül több értéket, azonban egy tartományhoz csinálhasz sokféle cookie-t mint ahogy az fent is látszik. Ha modod van rá és érdekel meg van a tárhely csomagodhoz php akkor használhatsz sessiont, kapsz egy md5 ben kodolt session id-t es egy session tömböt amiben belül eltárolhatsz dolgokat, és azt a felhasználó nem látja és modositasni sem tudja
4

A session nem jo megoldas

zoliky · 2008. Jún. 6. (P), 14.24
A sutire szuksegem van kb. 1 evig.
Legordulo/felgordulo tablazat sorokrol van szo :) Ha egy felhasznalo becsuk ket tabla sort (TR) szertnem azt tarolni is, de nem akarok letrehozni 100 sutit egy dologert. Azt hiszem a legszebb megoldas ha egy sutiben tarolom mindegyik tablazat sor nevet (container_1, container_2).

Ime egy pelda (a gallery oldalan mukodik): http://img61.imageshack.us/img61/6162/zolinb9.jpg
5

nem zárja ki a session-t

Drawain · 2008. Jún. 6. (P), 14.54
Az, hogy egy évig szükséged van rá, nem zárja ki a session-t, csak jól kell beállítani.

Másrészt ha ilyen adatot akarsz tárolni cookie-ban, akkor tömbként vagy json formában tárold le, erre is rengeteg lib van a neten - vagy csak egyszerűen szerializált formában mentsed az adatot.

Egyébként nem találom ezt jó megoldásnak, mert a sütiben tárolható adat mennyisége véges, és ha itt 100 vagy több stringet akarsz egyetlenben eltárolni, ki tudja mi lesz a vége.
6

cookie

zoliky · 2008. Jún. 6. (P), 15.04
Ok de ezt a modszert hasznalja tobb forum is, peldaul : gallery drupal, vbulletin, stb... Nem tarolok tobb mint 10 erteket, azt hiszem a maximum 20.

A tomben birok tarolni sutiket JS library nelkul is?
7

nagyon alap, tessék továbbírni

toxin · 2008. Jún. 7. (Szo), 07.51
  1. /* from json.org */  
  2.             (function(){  
  3.                 var m = {  
  4.                     '\b''\\b',  
  5.                     '\t''\\t',  
  6.                     '\n''\\n',  
  7.                     '\f''\\f',  
  8.                     '\r''\\r',  
  9.                     '"''\\"',  
  10.                     '\\': '\\\\'  
  11.                 }, s = {  
  12.                     array: function(x){  
  13.                         var a = ['['], b, f, i, l = x.length, v;  
  14.                         for (i = 0; i < l; i += 1) {  
  15.                             v = x[i];  
  16.                             f = s[typeof v];  
  17.                             if (f) {  
  18.                                 v = f(v);  
  19.                                 if (typeof v == 'string') {  
  20.                                     if (b) {  
  21.                                         a[a.length] = ',';  
  22.                                     }  
  23.                                     a[a.length] = v;  
  24.                                     b = true;  
  25.                                 }  
  26.                             }  
  27.                         }  
  28.                         a[a.length] = ']';  
  29.                         return a.join('');  
  30.                     },  
  31.                     'boolean'function(x){  
  32.                         return String(x);  
  33.                     },  
  34.                     'null'function(x){  
  35.                         return "null";  
  36.                     },  
  37.                     number: function(x){  
  38.                         return isFinite(x) ? String(x) : 'null';  
  39.                     },  
  40.                     object: function(x){  
  41.                         if (x) {  
  42.                             if (x instanceof Array) {  
  43.                                 return s.array(x);  
  44.                             }  
  45.                             var a = ['{'], b, f, i, v;  
  46.                             for (i in x) {  
  47.                                 v = x[i];  
  48.                                 f = s[typeof v];  
  49.                                 if (f) {  
  50.                                     v = f(v);  
  51.                                     if (typeof v == 'string') {  
  52.                                         if (b) {  
  53.                                             a[a.length] = ',';  
  54.                                         }  
  55.                                         a.push(s.string(i), ':', v);  
  56.                                         b = true;  
  57.                                     }  
  58.                                 }  
  59.                             }  
  60.                             a[a.length] = '}';  
  61.                             return a.join('');  
  62.                         }  
  63.                         return 'null';  
  64.                     },  
  65.                     string: function(x){  
  66.                         if (/["\\\x00-\x1f]/.test(x)) {  
  67.                             x = x.replace(/([\x00-\x1f\\"])/g, function(a, b){  
  68.                                 var c = m[b];  
  69.                                 if (c) {  
  70.                                     return c;  
  71.                                 }  
  72.                                 c = b.charCodeAt();  
  73.                                 return '\\u00' +  
  74.                                 Math.floor(c / 16).toString(16) +  
  75.                                 (c % 16).toString(16);  
  76.                             });  
  77.                         }  
  78.                         return '"' + x + '"';  
  79.                     }  
  80.                 };  
  81.                 /* --------------------------------------------------------------- */  
  82.                   
  83.                 JSON = {  
  84.                     encode: function(x){  
  85.                         if (x.constructor != Object) {  
  86.                             throw new Error('JSON encode waits an JSON object');  
  87.                         };  
  88.                         return s.object(x);  
  89.                     },  
  90.                     decode: function(json){  
  91.                         try {  
  92.                             return eval("(" + json + ")");  
  93.                         }   
  94.                         catch (e) {  
  95.                             return undefined;  
  96.                         }  
  97.                     }  
  98.                 };         
  99.               
  100.             Cookie = {  
  101.               
  102.                 set: function(name, value, days){  
  103.                     if (days) {  
  104.                         var date = new Date();  
  105.                         date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));  
  106.                         var expires = "; expires=" + date.toGMTString();  
  107.                     } else {   
  108.                         var expires = "";  
  109.                     };  
  110.                     document.cookie = arguments[0]   
  111.                         + "="   
  112.                         + ((value.constructor == Object) ? JSON.encode(value) : value)   
  113.                         + expires   
  114.                         + "; path=/"  
  115.                     ;  
  116.                 },  
  117.                   
  118.                 get: function(name){  
  119.                     var nameEQ = name + "=";  
  120.                     var ca = document.cookie.split(';');  
  121.                     for (var i = 0; i < ca.length; i++) {  
  122.                         var c = ca[i];  
  123.                         while (c.charAt(0) == ' ') c = c.substring(1, c.length);  
  124.                         if (c.indexOf(nameEQ) == 0)   
  125.                             return JSON.decode(c.substring(nameEQ.length, c.length))   
  126.                                                 || c.substring(nameEQ.length, c.length);                          
  127.                     };  
  128.                     return null;  
  129.                 },  
  130.                   
  131.                 destroy: function(name){  
  132.                     Cookie.set(name, "", -1);  
  133.                 }              
  134.             };  
  135.             })();  
  136.               
  137.             //single cookie param, setting/getting  
  138.             Cookie.set("cookieSimple",3);  
  139.             alert(Cookie.get("cookieSimple"));    
  140.               
  141.             //multiple cookie params, setting/getting using JSON format  
  142.             Cookie.set("cookieJSON",{param0:true,param1:'1',param2:2,param3:[1,2,3,4]});  
  143.             myCookieParams = Cookie.get("cookieJSON");  
  144.             for (var cookieParam in myCookieParams)   
  145.                 alert(myCookieParams[cookieParam]);           
  146.               
  147.             //Cookie.destroy("cookieSimple");  
  148.             //Cookie.destroy("cookieJSON");    
szerintem a kód önmagáért beszél, firecookie mint firebug-ba épülő külső cookie editor javasolt :)

üdv Csaba
8

Hogy csinálnád...

vbence · 2008. Jún. 7. (Szo), 09.45
...ha normál változók lennének? Ahhoz, hogy hozzafuzz valamit egy ertekhez azt le kell kérdezned.
alert(document.cookie);
9

firecookie

zoliky · 2008. Jún. 12. (Cs), 15.50
Koszonom a "firecookie" plugint, nagon hasznos!
Valaki meg tudna mondani, hogyan tudom elenorizni ha letezik egy suti ? Peldaul letrehoztam egy "accodion" nevezetu sutit, es szeretnem egy IF-el megnezni ha letezik.