?-Parameter von Formularen zerlegen?
account
- javascript
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
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
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
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