Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
BF extended 2022

Diskuze: Ako zapísať všetky hodnoty do JS cookies

Aktivity
Avatar
Lava
Člen
Avatar
Lava:17.2.2020 10:52

Mám systém, kde pri jednotlivých ľuďoch človek checkboxom zaškrtne, že "niečo" (to je nepdostatné). Podstatné je, že to, čo má zaškrtnutý checkbox chcem uložiť do JS cookies a na inej podstránke to potom spracovať. Problém je ten, že neviem uložiť viacero hodnôt do cookies, nové hodnoty vždy prepíšu staré

Zkusil jsem: Tu je moja skrumáž

$(document).on("click", ".fake-underage-box", function() {
   $(this).find(".fakebox").toggleClass('activated'); // set correct class
   $(this).find(".underage-doc").toggle(); // simulate checkbox activated
   if($(this).find(".fakebox").hasClass("activated")) { // if checkbox is activated
       var parent = $(this).closest(".mep-user-info-sec"); // find parent element
       var userName = $(parent).find("input[name='wbtm_user_name[]']").val(); // find a name of underage user

       document.cookie = 'user=' + userName; // write to cookies
       //alert(document.cookie);
   }
});

Chyba je v tom, že stále zapisujem do user=... a potom zase user=...

Chci docílit: Potreboval by som to urobiť štýlom user1=... user2=... lenže vôbec nemám tušenie, ako tam ten index dostať. Táto funkcia sa mi spúšťa po každom označení checkboxu, takže by som chcel, aby sa to tam pridávalo a nie prepisovalo

Odpovědět
17.2.2020 10:52
Aspartám, sacharín, to je môj vitamín
Avatar
Marek Kočí
Tvůrce
Avatar
Marek Kočí:17.2.2020 14:03

Za prvé bych raději použil LocalStore, pokud tam chceš pouze přidávat, ukládej si pole hodnot.
Případně nejprve načti obsah cookie a pak přidej hodnotu s oddělovačem.

 
Nahoru Odpovědět
17.2.2020 14:03
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:17.2.2020 15:45

Viz Marek, nove se misto cookie pouziva LocalStorage.
google = localstorage
https://developer.mozilla.org/…localStorage

Cookies je string. Pro jednu stranku muzes mit 1 cookie. A je limitovane delkou url get, request header. Data se do nej ukladaji jako jeden string.

x = 'a=1;b=2;c=3'. split(';');
//x[0] = 'a=1'
//x[1] = 'b=2'
//x[2] = 'c=3'

//--- cookies ---
function createCookie(name,value,days)
{
var c,d,e; e="";
if (days)
        {
        d=new Date();
        d.setTime(d.getTime()+days*86400000);
        e="; expires="+d.toGMTString();
        }
c=name+"="+value+e+"; path=/";
document.cookie=c;
}

function readCookie(name)
{var i,c,n,ca;
n=name+"=";
ca=document.cookie.split(';');
for(i=0;i<ca.length;i++)
        {
        c=ca[i];
        while (c.charAt(0)==' ') c=c.substring(1,c.length);
        if (c.indexOf(n)==0) return c.substring(n.length,c.length);
        }
return '';
}

function eraseCookie(name)
{createCookie(name,"",-1)}

google = cookie javascript example
https://developer.mozilla.org/…ument/cookie

 
Nahoru Odpovědět
17.2.2020 15:45
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:17.2.2020 15:47

A nejsem si ted jisty, jestli neni nutne ten strednik escapovat pro url pres escape() nebo uriencode, idealne vlastnim regexpem... v php urlencode(). To si fakt nevzpominam.

Editováno 17.2.2020 15:48
 
Nahoru Odpovědět
17.2.2020 15:47
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.