Wie lege ich Cookies für Formulardaten an?
SEBASTIAN
- javascript
Ai
ich möchte das der User am Formular ein kontrollkästchen aktivieren kann und wenn er dann auf Abschicken klickt werden einige Daten als Cookie gespeichert.
Wenn er dann das nächste mal auf das Form kommt sollen die Daten wieder in die Felder geladen werden.
Wie mache ich das?
Ciao Sebi
Hi,
am Besten gehts mit Javascript.
Dein Submit-Button muss dann anstatt des Submits eine Javascript-Funktion
aufrufen (also kein Submit-Button, sondern ein gaaaanz normaler).
Die Javascript-Funktion überprüft, ob das Häkchen gesetzt ist und schreibt
dann gegebenenfalls die von Dir gewünschten Daten ins Cookie.
Da das Cookie für jede Seite nur einen Wert speichert, musst Du die Daten
aus den einzelnen Formularfeldern zusammenpacken in eine Variable, so, dass
Du diese auch wieder auseinanderklamüsern kannst.
Achja, beim Laden der Seite solltest Du natürlich prüfen, ob ein Cookie
existiert und entsprechend die Felder wieder mit den Werten vorbelegen.
Das ist die Vorgehensweise, die ich Dir vorschlage. Oder hast Du fertigen
Code erwartet?
Gruß,
Knud
Ok,ok, hier a bissl Code-Geschnipsel zum Zusammenkleben:
So könnte die Funktion aussehen, die die Cookie-Daten ermittelt und wieder speichert:
function init() {
if (document.cookie) {
Wert = document.cookie;
while (Wert.length > 0) {
numbis = Wert.indexOf("=");
if (numbis == -1) numbis = Wert.length;
Wertname = Wert.substring(1,numbis);
numstart = numbis+1;
numende = Wert.indexOf("|");
if (numende == -1) numende = Wert.length;
Wertvalue = Wert.substring(numstart,numende);
NeuWert = Wert.substring(numende+1,Wert.length);
Wert = NeuWert;
document.login[Wertname].value = Wertvalue;
}
}
}
Wie Du vielleicht erkennst, ist die Funktion so flexible aufgebaut, dass Sie sich nicht dafür interessieren brauch, wie die Felder hiessen usw.
So müssten die Werte dann gespeichert werden:
function save_cookie() {
var Verfall = 1000*60*60*24*365;
var jetzt = new Date();
var Auszeit = new Date(jetzt.getTime() + Verfall);
var Wert = "xfeld1="+document.form1.feld1.value+"|";
Wert = Wert + "xfeld2="+document.form1.feld2.value+"|";
document.cookie = Wert+"; expires="+Auszeit.toGMTString()+";";
alert("Daten gespeichert! \nBeim nächsten Aufruf werden die Felder automatisch ausgefüllt!");
}
Beim Verfall hab ich 1 Jahr gewählt, kannst ja selber rechnen, oder?
Bei den Feldern hab ich ein x davor (wird beim auslesen auch ignoriert.)
Musste ich aber mal so machen, da ich auch mit php gearbeitet habe und php
hat dummerweise die Daten aus dem Cookie ungewollt in die Variablen
gespeichert. (Iss so bloedes Cookie im Frameset mit PHP Problem gewesen)
Abzufragen, ob datt Häkchen nu gesetzt iss oder nitt und dementsprechend zu speichern, sollte nicht sooo schwierig sein, oder?
Ai
Danke erst mal das mit dem Cookie schreiben klappt ja nur mit dem auslesen habe ich noch meine Probleme
Was sind denn: Wertvalue und Wertname
Welche Werte muß ich denn durch meine erseten?
Ciao