SEBASTIAN: Wie lege ich Cookies für Formulardaten an?

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

  1. 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?

    1. 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