Blacky: Mehrseitiges Formular

Wie können die Felder einer ersten Formularseite an eine zweite Seite übergeben werden.
Auf der zweiten Seite müssen die Felder der ersten und zweiten Seite mit einem Mail versandt werden können.

Für alle Tips bin ich sehr dankbahr.

Grüsse Blacky

  1. hi!

    Wie können die Felder einer ersten Formularseite an eine zweite Seite übergeben werden.
    Auf der zweiten Seite müssen die Felder der ersten und zweiten Seite mit einem Mail versandt werden können.

    Du musst die zweite Formular-Seite über ein Skript dynamisch erstellen lassen. Die Daten aus den Feldern der ersten Seite kannst du in versteckten Formularfeldern auf der zweiten Seite speichern (<input type="hidden" ...>).

    bye, Frank!

  2. Wie können die Felder einer ersten Formularseite an eine zweite Seite übergeben werden.
    Auf der zweiten Seite müssen die Felder der ersten und zweiten Seite mit einem Mail versandt werden können.

    Für alle Tips bin ich sehr dankbahr.

    Grüsse Blacky

    Hallo Blacky!

    Das Thema war vor kurzem da. Siehe dir:
    <t01211.htm#a5000> an.

    Grüße
    Thomas

    1. Das Thema war vor kurzem da. Siehe dir:
      <t01211.htm#a5000> an.

      Ich habe dort erzaehlt, dass man sich die search-Eigenschaft des location-Objekts durchlesen muss (siehe dazu <../../tecbe.htm#a9>), und dass es diese Eigenschaft aber nur bei NS gibt. Falls mir jemand garantieren koennte, dass in der href-Eigenschaft auch der Parameterstring mit drinsteht, dann koennte man auch MSIE-kompatibel abfragen. Also weiss das jemand genau?

      Calocybe (weil es ja meherere Roland's gibt)

      1. Hallo Calocybe (weil es ja mehrere Roland's gibt) ;-) !

        Ich habe dort erzaehlt, dass man sich die search-Eigenschaft des location-Objekts durchlesen muss (siehe dazu <../../tecbe.htm#a9>), und dass es diese Eigenschaft aber nur bei NS gibt. Falls mir jemand garantieren koennte, dass in der href-Eigenschaft auch der Parameterstring mit drinsteht, dann koennte man auch MSIE-kompatibel abfragen. Also weiss das jemand genau?

        Sorry, da bin ich einfach überfragt!

        Grüße
        Thomas

      2. 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...

        1. 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

          1. Hi Patrick,

            P.S.: Utz, Du hast aber ein gutes Gedächtnis!

            Wer war denn nochmal dieser Utz?

            SCNR,

            Utz