[JavaScript] Meerdere variabele in 1 cookie

Pagina: 1
Acties:

  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 04-09 12:53
Ik heb een form op mijn pagina en bij elke OnChange van de tekstboxen wordt er een cookie opgeslagen. Hij wordt in JavaScript opgeslagen, maar later moet hij in ASP opgevraagt worden. Nu heb ik een stukje code geschreven maar hij slaat alleen de laatste regel van het script op, ik heb al verschillende dingen geprobeerd, maar het lukt me niet echt. Wie heeft er een tip voor me.

Het is wel de bedoeling dat alle variabele in de groepnaam "GTIOrdNieuwOpslaan" komen te staan, en niet elke variabele appart. Met onderstaande script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ar_date = new Date();
ar_ord = ar_date.getTime();
ar_expires = new Date(ar_ord + 86400000);

function CookieOpslaan() {
    document.cookie = 'GTIOrdNieuwOpslaan=OrderNummer=' + window.document.geboortebewijs.OrderNummer.value + '; path=/; expires=' + ar_expires.toGMTString();
    document.cookie = 'GTIOrdNieuwOpslaan=Kenmerk=' + window.document.geboortebewijs.Kenmerk.value + '; path=/; expires=' + ar_expires.toGMTString();
    document.cookie = 'GTIOrdNieuwOpslaan=SubNummer=' + window.document.geboortebewijs.SubNummer.value + '; path=/; expires=' + ar_expires.toGMTString();
    document.cookie = 'GTIOrdNieuwOpslaan=ProjectNaam=' + window.document.geboortebewijs.ProjectNaam.value + '; path=/; expires=' + ar_expires.toGMTString();
    document.cookie = 'GTIOrdNieuwOpslaanOpdrachtgever=' + window.document.geboortebewijs.Opdrachtgever.value + '; expires=' + ar_expires.toGMTString();
    document.cookie = 'GTIOrdNieuwOpslaanContactPersoon=' + window.document.geboortebewijs.ContactPersoon.value + '; expires=' + ar_expires.toGMTString();
    document.cookie = 'GTIOrdNieuwOpslaanLocatie=' + window.document.geboortebewijs.Locatie.value + '; expires=' + ar_expires.toGMTString();
    Enz. enz.
}

Wordt dit cookie opgeslagen:
code:
1
2
3
4
5
6
7
8
9
GTIOrdNieuwOpslaan
LaatsteVariabele=87484 <-- Dit is de waarde van de laatste regel code.
gti-ri.gti/
1088
490444672
29498393
4096488464
29498191
*

Maar hoe kan ik het cookie opslaan dat er zoiets komt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
GTIOrdNieuwOpslaan
NogOpslaan=True
Var1=sdkfsd
Var2=Tekst
Var3=Test
Enz. enz.
gti-ri.gti/
1088
490444672
29498393
4096488464
29498191
*

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


Verwijderd

Kon je dit nou echt niet zelf verzinnen?
code:
1
2
3
4
5
var my_cookie = 'kahjbdjkabsdk';
my_cookie += 'habsdkbaskdb';
...
my_cookie += 'kjnaksdkkakasndbaksd';
document.cookie = my_cookie + '; expires=' + ar_expires.toGMTString();

  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 04-09 12:53
Op maandag 24 juni 2002 09:43 schreef Blues het volgende:
Kon je dit nou echt niet zelf verzinnen?
code:
1
2
3
4
5
var my_cookie = 'kahjbdjkabsdk';
my_cookie += 'habsdkbaskdb';
...
my_cookie += 'kjnaksdkkakasndbaksd';
document.cookie = my_cookie + '; expires=' + ar_expires.toGMTString();
Dat heb ik dus al geprobeerd, en als ik dan probeer het cookie op te slaan krijg ik:
code:
1
2
3
4
5
6
7
8
9
GTIOrdNieuwOpslaan
OrdNummer=515Kenmerk=SubNummer enz enz enz
gti-ri.gti/
1088
3935542784
29498396
3243809280
29498195
*

En al doe ik bijvoorbeeld een &-teken of een : of ; ertussen slaat hij het nog niet goed op. Dus ik wil graag weten hoe ik in 1 cookie meerdere variabele opslaan onder 1 groepsnaam!

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!


Verwijderd

Het probleem is dat een cookie gewoon een string is. Als je daar meerdere variabelen in op wil slaan zul je die string toch echt moeten parsen. Je kunt er inderdaad ampersandjes (&) tussen zetten en dan later die string splitten en evallen.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var myString = 'myVar1=111';
myString += '&';
myString += 'myVar2=222';
myString += '&';
myString += 'myVar3=333';
myString += '&';
myString += 'myVar4=444';

myArray = myString.split('&');
for(var i=0; i<myArray.length; i++) {
    eval('var ' + myArray[i]);
}
alert(myVar1);
alert(myVar2);
alert(myVar3);
alert(myVar4);

  • Polderdijk
  • Registratie: December 2001
  • Laatst online: 04-09 12:53
Dan moet ik het inderdaad opslaan als 1 string en deze met de Split-functie in ASP weer uit elkaar halen :( Ik ga het ff proberen!

Webhosting van SkyHost.nl: 25 Mb / 1 Gb windows hosting € 4,50 p/m excl.btw!