Calocybe: Mehrseitiges Formular - Hier ist der Code.

Beitrag lesen

Falls mir jemand garantieren koennte, dass in der href-Eigenschaft auch der Parameterstring mit drinsteht, dann koennte man auch MSIE-kompatibel abfragen.

Hallo allerseits. Jetzt habe ich mich mal hingesetzt und getestet, was denn nun funktioniert und dabei eine Funktion geschrieben, die das Auslesen der uebergebenen Parameter ermoeglicht. Folgende Version ist nur unter NS 4 erfolgreich getestet worden. Ich reiche aber gleich noch eine komptiblere nach.

Man schreibe in eine JS-Datei folgenden Code:
------------------------------------------------------------------------------------------
/* Diese Version funktioniert mit NS 4, nicht aber mit MS IE 3, alles andere unbekannt */

function GetURLArgument(field) {
    s = location.href;          /* we get something like  "http://URL?abc=content1&def=content2&ghi=content3"  */
    i = s.indexOf("?");
    if (i == -1) return "";

s = s.substr(i);            /* we have "?abc=content1&def=content2&ghi=content3"  */
    s = "&" + s.substr(1);      /* why can't I just write  s[0] = "&"  ?    */

/* now we have "&abc=content1&def=content2&ghi=content3"  */
    /* we're searching for the 'def' argument                 */
    i = s.indexOf("&" + field + "=");
    if (i == -1) return "";

s = s.substr(i + field.length + 2);     /* we get "content2&ghi=content3"                  */
    i = s.indexOf("&")
    if (i == -1) return s;                  /* this is in case the LAST argument was requested */

return s.substr(0, i);
}
------------------------------------------------------------------------------------------

Diese bindet man nun in eine HTML-Datei ein:

------------------------------------------------------------------------------------------
<HTML>
<HEAD>
    <SCRIPT LANGUAGE="JavaScript1.2" SRC="form2.js"></SCRIPT>
</HEAD>

<BODY>

<FORM NAME="MyForm">
    abc: <INPUT TYPE=TEXT NAME=abc SIZE=30><BR>
    def: <INPUT TYPE=TEXT NAME=def SIZE=30><BR>
    ghi: <INPUT TYPE=TEXT NAME=ghi SIZE=30><BR>
    <INPUT TYPE=BUTTON VALUE="Fill in!" OnClick="this.form.abc.value = GetURLArgument('abc'); this.form.def.value = GetURLArgument('def'); this.form.ghi.value = GetURLArgument('ghi');">
</FORM>

</BODY>
</HTML>
------------------------------------------------------------------------------------------

Mit Klick auf den Fill-In Buttonwerden die Argumente, die man zu Testzwecken eigenhaendig in der Adresszeile des Browsers eingibt, in die Felder gefuellt. Fuer mehrseitige Formulare waeren das dann also keine TEXT-Inputs, sondern HIDDEN-Inputs.

Jetzt kommt gleich noch die Version fuer den MS IE 3...