alex: Mehrteiliges Formular

Hallo!

Ich will folgendes machen:

mein besucher soll ein formular ausfüllen,
dann auf "weiter" klicken und auf ein weiteres formular kommen,
das er auch ausfüllen soll.
dann soll er (nachdem er nochmal auf eine "weiter" schaltfläche geklickt hat) noch eine zusammenfassung sehen,
wo er dann auch den endgültigen submit button hat.

meine frage:
ich selbst kann nur ein formular mit "submit" erstellen, das von einem (fertigen) php formmailer verarbeitet wird. was mir fehlt, sind die zwischenschritte: wie kommen die formulardaten aus der ersten seite auf die zusammenfassung, und wie kann der formmailer die daten aus der zusammenfassung auslesen? (die liegen ja nicht mehr als formulareingabe, sondern als hardcode vor. oder?)

dankeschöööön
alexander

  1. Hi,

    wie kommen die formulardaten aus der ersten seite auf die zusammenfassung,

    über <input type="hidden">.

    und wie kann der formmailer die daten aus der zusammenfassung auslesen?

    Niemand liest irgendwas aus. Der Formmailer _erhält_ die Daten, und zwar erst dann, wenn er angesprochen wird. Exakt dies musst Du also exakt dann tun, wenn es gewünscht ist.

    (die liegen ja nicht mehr als formulareingabe, sondern als hardcode vor. oder?)

    Hartkodiert ist da gar nichts. Sonst müsstest Du pro Formularnutzung ein PHP-Script (=eine Datei) generieren.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. wie kommen die formulardaten aus der ersten seite auf die zusammenfassung,

      über <input type="hidden">.

      das heißt, ich lasse die daten einmal als formatierten text anzeigen, und ein zweites mal liegen sie als hidden form input vor, richtig?

      1. Hi,

        das heißt, ich lasse die daten einmal als formatierten text anzeigen,

        ähm, als eine Eingabemethode Deiner Wahl. Ich nehme nicht an, dass Du Daten übergeben willst, die Du schon _vor_ der ersten Seite kanntest; sondern nur jene, die der Benutzer individuell eingibt.

        und ein zweites mal liegen sie als hidden form input vor, richtig?

        Ja.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. ok.

          ähm, dumme frage:
          was muß beim click auf "weiter" ungefähr ausgeführt werden, damit das zweite formular die daten aus dem ersten formular enthält?

          soll eine neue datei geladen werden, oder sollen bei der bestehenden datei einfach nur die bisherigen formularfelder hidden werden, und neue (bisher hidden) sichtbar gemacht werden?

          ich glaube, die nächste frage ist vor-"programmiert".... ;-)

          1. Hi,

            was muß beim click auf "weiter" ungefähr ausgeführt werden, damit das zweite formular die daten aus dem ersten formular enthält?

            echo.

            soll eine neue datei geladen werden, oder sollen bei der bestehenden datei einfach nur die bisherigen formularfelder hidden werden, und neue (bisher hidden) sichtbar gemacht werden?

            Abgesehen davon, dass in HTTP keine Dateien existieren, lautet die Antwort hierauf: Ja.

            Viele Wege führen nach Rom. Suche Dir denjenigen aus, der Dir am wenigsten steinig zu sein scheint.

            Cheatah

            --
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hallo Alex!

              Viele Wege führen nach Rom. Suche Dir denjenigen aus, der Dir am wenigsten steinig zu sein scheint.

              ... und nimm dazu nicht die Inline Skates - es gibt auch Autos ;-)

              Offenbar happerts ein wenig am Grundverständnis für http://selfhtml.teamone.de/html/formulare/index.htm und deren Verarbeitung.

              mfg

              norbert =:-)

              1. hallo...

                also noch einmal "mit meinen worten":

                das erste formular ist noch reiner html code,
                und der button "weiter" verweist auf die datei teil2.php.

                teil2.php ihrerseits ist ein html formular, das hidden inputs enthält, deren values als "="<?php print($feld1); ?>">" notiert werden.

                Zwischen dem Formular 1 und 2 ist also kein eigenes php-programm, sondern das programm ist ein wenig php-code, der bereits in Formular 2 integriert ist, und von der php umgebung des webservers geparst (Terminologie?) wird.

                erst der button submit im formular 2 verweist auf ein php programm - den formmailer.

                hab ichs jetzt?

                1. hi,

                  erst der button submit im formular 2 verweist auf ein php programm - den formmailer.

                  wenn man ein php-script ein programm nennen möchte, ja ;-)

                  grüße,
                  small-step

                2. Hi,

                  teil2.php ihrerseits ist ein html formular, das hidden inputs enthält, deren values als "="<?php print($feld1); ?>">" notiert werden.

                  was besonders lustig wird, wenn $feld1 - was Du selbstverständlich zuvor aus $_GET bzw. $_POST initialisiert hast, siehe Archiv - Doublequotes enthält.

                  hab ichs jetzt?

                  Jupp.

                  Cheatah

                  --
                  X-Will-Answer-Email: No
                  X-Please-Search-Archive-First: Absolutely Yes
                  1. hi,

                    was besonders lustig wird, wenn $feld1 - was Du selbstverständlich zuvor aus $_GET bzw. $_POST initialisiert hast, siehe Archiv - Doublequotes enthält.

                    schön wär's wenn sich das problem nur bei doublequotes ergeben würde ;-)

                    grüße,
                    small-step

                    1. Hi,

                      was besonders lustig wird, wenn $feld1 - was Du selbstverständlich zuvor aus $_GET bzw. $_POST initialisiert hast, siehe Archiv - Doublequotes enthält.
                      schön wär's wenn sich das problem nur bei doublequotes ergeben würde ;-)

                      nun ja, sagen wir so: Bei allen anderen Zeichen, die man gewöhnlich[1] in einem Eingabefeld (da kommen die Daten schließlich her) erwarten kann, gibt es in der Praxis hinreichend gute Fehlerkorrekturroutinen ;-) Mehr als darauf hinweisen, dass hier _überhaupt_ ein Problem vorliegt, wollte ich aber auch gar nicht.

                      Cheatah

                      [1] Oh oh oh, was einem manchmal für Daten entgegenschlagen... da werden ganze Word-Dokumente(!) in einzeilige Textfelder copy&pasted... :-)

                      --
                      X-Will-Answer-Email: No
                      X-Please-Search-Archive-First: Absolutely Yes
                      1. hi,

                        nun ja, sagen wir so: Bei allen anderen Zeichen, die man gewöhnlich[1] in einem Eingabefeld (da kommen die Daten schließlich her) erwarten kann, gibt es in der Praxis hinreichend gute Fehlerkorrekturroutinen ;-) Mehr als darauf hinweisen, dass hier _überhaupt_ ein Problem vorliegt, wollte ich aber auch gar nicht.

                        na ja, ich sag dazu nur "... eine version > 4.x..." ;-)

                        allerdings gibt es ja auch für die doublequotes hinrechend gute möglichkeiten, man muss sie als anfänger nur erstmal kennenlernen. das problem hatte ich damals mehr als einmal... ;-)

                        grüße,
                        small-step

                        1. Hi,

                          na ja, ich sag dazu nur "... eine version > 4.x..." ;-)

                          verdammt, da werde ich mit Mozilla 1.3 wohl nicht weit kommen *g*

                          allerdings gibt es ja auch für die doublequotes hinrechend gute möglichkeiten, man muss sie als anfänger nur erstmal kennenlernen. das problem hatte ich damals mehr als einmal... ;-)

                          Oh, ich auch. _Ganz_ früher (als ich noch jung und schön war - heute bin ich nur noch und) habe ich dazu mal Double- in zwei Singlequotes umgewandelt u.u. *ächz* :-) Die Lösung, die mir im Zusammenhang mit PHP vorschwebt, ist jedoch recht leicht recherchierbar und löst dieses mitsamt den von Dir angedeuteten Problemen ...

                          Cheatah

                          --
                          X-Will-Answer-Email: No
                          X-Please-Search-Archive-First: Absolutely Yes
            2. Hallo alex!

              Du sollst natürlich auch einen produktiven Eintrag bekommen:

              Du musst die Werte in den Formularen "mitschleifen".

              Also Eingabefeld im Formular1

              <input type="text" name="feld1">

              wird im Formular2 als Hidden-Feld eingebunden.

              <input type="hidden" name="feld1" value="<?php print($feld1); ?>">
              <input neueFelder...>

              Dieses wird dann mit den anderen neuen Feldern an Formular3 gesendet - dieses enthält nur noch Hidden-Felder, da es ja eigentlich nur eine Kontrollübersicht ist.

              <input type="hidden" name="feld1" value="<?php print($feld1); ?>">
              <input type="hidden" name="feld2" value="<?php print($feld2); ?>">

              Text der Übersicht...

              Der Form halber muss ich noch anmerken, dass $feld1 nicht immer so einfach angesprochen werden kann (siehe Archiv), eventuell $HTTP_POST_VARS bzw. _GET_VARS verwenden.

              mfg

              norbert =:-)

              Hi,

              was muß beim click auf "weiter" ungefähr ausgeführt werden, damit das zweite formular die daten aus dem ersten formular enthält?

              echo.

              soll eine neue datei geladen werden, oder sollen bei der bestehenden datei einfach nur die bisherigen formularfelder hidden werden, und neue (bisher hidden) sichtbar gemacht werden?

              Abgesehen davon, dass in HTTP keine Dateien existieren, lautet die Antwort hierauf: Ja.

              Viele Wege führen nach Rom. Suche Dir denjenigen aus, der Dir am wenigsten steinig zu sein scheint.

              Cheatah

            3. Steine? Felsen? Kontinente!

              ich habe nie das gegenteil davon behauptet, daß ich keine ahnung hätte :-)

              tausend dank für die infos!

  2. Hallo,

    Da gibt es zwei methoden:

    1. wie schon genannt die "mitschleif"-methode mit den hidden feldern und 2. sessions dass vereinfacht viel! www.php.net/session guck da mal!

    MfG
    Michael Wölk

    wieso hat das eigentlich noch keiner im laufe dieses Threads erwähnt?

    1. Hallo Michael!

      1. sessions ...
        ...wieso hat das eigentlich noch keiner im laufe dieses Threads erwähnt?

      Weil ich

      1.) einen offenbar noch nicht so Fortgeschrittenen mit dieser Technik überfordern wollte - irgendwann stolpert er ohnehin drüber.

      2.) ich ein einfach denkender Mensch bin ;-)

      3.) ich darauf vergessen habe - was war nochmal die Frage :-)

      mfg

      norbert =:-)

      1. Hi,

        1. sessions ...
          ...wieso hat das eigentlich noch keiner im laufe dieses Threads erwähnt?

        Weil ich

        [...]

        4.) der Ansicht bin, dass man nicht mit Kanonen auf Spatzen schießen sollte - zumindest solange man nicht ausschließen kann, dass die Spatzen noch anderweitig benötigt werden. Ein Session-Management ist eine nicht unerhebliche konzeptionelle Änderung.

        Cheatah

        --
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  3. Schande über mich und Hallo noch einmal!

    Ich habe die vorschläge von cheetah und norbert verarbeitet,
    und bleibe einstweilen an der syntax eine bestimmten stelle hängen.

    der ausgewählte value aus einer radio button gruppe mit dem name "size" und den values "s", "m", "l", "xl" usw. soll bei mir vor dem abschicken an den formmailer noch einmal angezeigt werden.
    dabei will ich aber nicht den $value sondern einen damit assoziierten text anzeigen. weil ich es nicht besser weiß, habe ich in anlehnung an die javascript syntax folgendes geschrieben:

    <td>
    <?php
    if (value($size)=="s") {print("kleine Portion")};
    if (value($size)=="m") {print("Möchtegern")};
     ?>
    </td>

    usw.

    das geht natürlich nicht, wie ich selbst festgestellt habe, denn nun schreibt mir aber mein webserver beim aufrufen der entsprechenden datei:

    Parse error: parse error, unexpected '}' in .../www.domain.net/teil4.php on line 110

    aber auch wenn ich die } entferne, kommt es zu einem fehler:

    Fatal error: Call to undefined function: value() in .../www.domain.net/teil4.php on line 110

    bitte, bitte, wie gehts weiter?

    grüße
    alexander

    1. Hallo Alex!

      Siehe dazu deinen neuen Thread, wo du ja bereits gerügt wurdest:

      [pref:t=44632&m=243333]

      mfg

      norbert =:-)

      1. danke.
        es funktioniert!
        *freu*