Holger Lersch: Cookies und gefangen in einer Endlosschleife ...

Hallo Forum,

von folgendem JS Code ...

function getCookie(name) {
    var allCookies = document.cookie;
    CookieArray = allCookies.split(";");
    var gesucht='';
    for (i=0;i<CookieArray.length;i++){
      if (CookieArray[i].indexOf("=") != -1) {
        oneValue = CookieArray[i].split("=");
        if (oneValue[0] == name) {
          gesucht = oneValue[1];
        }
      }
    }
    return gesucht;
  }

function fillForm(fieldscsv){
    fields = fieldscsv.split(",");
    for (k=0;k<fields.length;k++) {
      alert(getCookie(fields[i]));
    }
  }

aufgerufen mit fillForm('NAME','VORNAME','TELEFON');

versprach ich mir eigentlich, dass der "Keks" ausgelesen wird und die gesetzten Formularfeldinhalte im Cookie zurückgegeben, und später dann ins Formular geschrieben, werden.

Leider hängt sich dieses Scriptchen immer in einer Endlosschleife auf. Was mag ich wohl übersehen haben?

Vielen Dank schonmal für Eure Hilfe!

Grüße
Holger

  1. n'Nacht.

    Leider hängt sich dieses Scriptchen immer in einer Endlosschleife auf. Was mag ich wohl übersehen haben?

    Also,

    fields = fieldscsv.split(",");

    tut nicht das, von dem du willst, das es es tut, wenn der Funktionsaufruf so

    fillForm('NAME','VORNAME','TELEFON');

    erfolgt, die Zeichenkette "NAME" enthält zum Einen gar keine Kommas
    und die anderen beiden übergebenen Zeichenketten "VORNAME" und
    "TELEFON" verschwinden zudem im Daten-Nirvana und können sich bis in
    alle Ewigkeit bei Saufgelagen mit toten Wikingern nochmals übergeben.
    Aufrufen solltest du deine Funktion mit
    fillForm('NAME,VORNAME,TELEFON');
    dann wird nur ein Parameter übergeben und der enthält sogar Kommas.
    Ja, und ich glaube das fields[i] in

    alert(getCookie(fields[i]));

    war eigentlich als fields[k] geplant.

    Gruß
    Norbert

    1. n'Nacht.

      [...]

      Gruß
      Norbert

      Hallo Norbert!

      Danke, dass Du mir die Augen geöffnet hast ;-). Das war aber jetzt ein klassischer Anfängerfehler, Herr Lersch!
      Ich glaub ich geh gleich wieder ins Bett ...

      Danke & Gruß & alles Gute in 2003
      Holger