Calocybe: Mehrseitiges Formular - Hier ist der Code.

Beitrag lesen

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

So, jetzt geht's weiter: Mit dem MS IE 3 kann man dies lokal ohne Webserver leider nicht testen, da er zu dumm ist, um zu erkennen, dass man auch bei lokalen HTML-Datein Argumente mittels des ?-Separators angeben kann. Aber man kann ja ein Unterverzeichnis namens Test (oder foo, wie der Ami sagen wuerde) auf seiner Homepage machen, und dann sollte es kein Problem sein.

------------------------------------------------------------------------------------------
<HTML>

<HEAD>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
        /* Diese Version funktioniert auch mit MS IE 3 */

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

s = s.substring(i, s.length);           /* "?abc=content1&def=content2&ghi=content3" */
            s = "&" + s.substring(1, s.length);     /* 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.substring(i + field.length + 2, s.length);     /* we get "content2&ghi=content3" */
            i = s.indexOf("&")
            if (i == -1) return s;                  /* this is in case the LAST argument was requested */

return s.substring(0, i);
        }

// -->
    </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>
------------------------------------------------------------------------------------------

Also falls es nicht ganz ruebergekommen ist: Die drei Felder heissen 'abc', 'def' und 'ghi' (welch Einfallsreichtum wird mir da anheim). Und so muessen die Argumente in der URL auch heissen: ...file.html?abc=Sex&def=Drugs&ghi=Rock'N'Roll

Tja und dann kommt das naechste Problem: Dieser Argumentestring wird ja dann durch die Eingaben ins vorherige Formular gebildet. Und dabei werden alle Sonderzeichen in Hex-Values umgewandelt (mit ein %-Zeichen davor), anstatt unveraendert uebernommen zu werden. So wird ein Leerzeichen als zu %20. Die naechste Funktion wird also diese Hexe in normale Zeichen zurueckkonvertiern muessen, sonst wuerde bei der naechsten Weiterleitung %2520 uebergeben werden (%25 fuer das %-Zeichen, 20 unveraenndert uebernommen).

Soweit erstmal, Ciao