account: ?-Parameter von Formularen zerlegen?

Hi,

ich hab ein Formular gemacht, das beim "Submit" ein paar Daten an die Folgeseite übergibt - die Zielseite ist aber ein Frameset! - wie komme ich da dann an die Daten dran?

habe schon herausgefunden, dass ich mir sie mit parent.location.search holen kann - aber da steht dann ja auch jede Menge Müll mit bei den ich irgendwie filtern muss - also
z.B. test.htm?formbegriff=test&submit=Start+%3E%3E&option=on

so, wie komm ich jetzt am Einfachsten an "test" und "on"? - und im Prinzip natürlich auch die Formvariablen denn sonst weiss ich bei mehreren Paramtern ja z.B. nicht mehr welcher on ist und welcher nicht ...

ich sach schonmal danke ;)

thx

Ciao

  1. Hallo.

    test.htm?formbegriff=test&submit=Start+%3E%3E&option=on

    Du musst den URI wieder dekodieren:
    http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#decode_uri

    und könntest danach die für dich relevanten Teile mit Hilfe von search und den String-Funktionen ermitteln:
    http://selfhtml.teamone.de/javascript/objekte/location.htm#search
    http://selfhtml.teamone.de/javascript/objekte/string.htm

    Vielleicht hilft's
    Siechfred

    1. danke erstmal - leider nicht wirklich, denn die Möglichkeit war mir auch schon klar - aber wie soll ich mit den stringfunktionen die Einzelteile herausbekommen? - schliesslich weiss ich ja nicht was eingegeben wurde! - die Variablen sind klar - die kann ich mir ja mit indexOf herausholen - aber dann die Werte? Wie soll ich da herausbekommen wo sie anfangen und wo enden?

      dachte es gibt das vielleicht was einfacheres oder ein fertiges js ...

      Ciao

      1. Hallo.

        [...] aber dann die Werte? Wie soll ich da herausbekommen wo sie anfangen und wo enden?

        Das Schema ist immer das gleiche: "seite.html?variable1=wert1&variable2=wert2" usw. usf.
        Also sollte dir auch hier split() weiterhelfen. Möglich wäre es vielleicht auch, substring() mit indexOf() zu kombinieren, wenn deine Werte bspw. immer die gleiche Länge haben.

        Denkbare Variante:

        var wertepaare = new Array();
        var wertestring = window.location.search;
        wertestring = wertestring.slice(1);
        var paare = wertestring.split("?");
        for (var i=0; i < paare.length; i++) {
          wertepaare[i] = new Array();
          wertepaare[i]["Name"] = paare[i].substring(0, paare[i].indexOf("="));
          wertepaare[i]["Wert"] = paare[i].substring(paare[i].indexOf("=")+1, paare[i]length-1);
        }

        Das Ergebnis wäre ein assoziatives Array, bei dem jedes Element aus dem Pärchen "Name" und "Wert" besteht, auf das du dann zugreifen kannst. Das Beispiel funktioniert im IE 6 (was anderes habe ich hier nicht zum Testen). Wenn's besser oder einfacher geht, wird sich sicher ein Wissender finden ;-)

        Grüße
        Siechfred