Wini: innerhalb von mehrseitigen Forms navigieren

Hi Leutz!

Ich habe folgendes Problem:

Ich habe ein Formular welches über 3 Seiten geht, die Variablen übergebe ich immer von einer (Formular-)Seite zur nächsten via "GET" und schleife die Variablen mit PHP sozusagen durch.

Jetzt will ich mittels Buttons dem Benutzer die Möglichkeit geben, zwischen den einzelnen Seiten hin und her zu springen.
Wenn ich aber innerhalb des <form>-Tags einen Submitbutton definiere, dann verweist dieser immer auf die URL die in <form action> definiert ist.

Weiß jemand wie ich die URL auf die die Submitbuttons verweisen innerhalb des Forms ändern kann?!?
Alternativ müsste ich normale Klickbuttons verwenden und die Parameter damit an die anderen Seiten übergeben. Hat jemand einen JavaScript den ich dafür verwenden könnte? Habe von Java(Script) nur sehr wenig Ahnung...

Vielen Dank & Gruß,
Wini

  1. Hallo Wini,

    Ich habe ein Formular welches über 3 Seiten geht, die Variablen übergebe ich immer von einer (Formular-)Seite zur nächsten via "GET" und schleife die Variablen mit PHP sozusagen durch.

    wunderbar.

    Jetzt will ich mittels Buttons dem Benutzer die Möglichkeit geben, zwischen den einzelnen Seiten hin und her zu springen.
    Wenn ich aber innerhalb des <form>-Tags einen Submitbutton definiere, dann verweist dieser immer auf die URL die in <form action> definiert ist.

    Jep.

    Weiß jemand wie ich die URL auf die die Submitbuttons verweisen innerhalb des Forms ändern kann?!?
    Alternativ müsste ich normale Klickbuttons verwenden und die Parameter damit an die anderen Seiten übergeben. Hat jemand einen JavaScript den ich dafür verwenden könnte? Habe von Java(Script) nur sehr wenig Ahnung...

    Nun, da ich etwas vergleichbares (nur etwas komplizierter ;) in nächster Zeit auch geplant habe, hier mal mein Lösungsansatz.

    Gewünscht sind etwa sowas:

    < Zurück     Weiter >     Abbrechen

    als buttons halt. Realisiert wird es so:

    <input type="submit" name="back" value="< Zurück" />
      <input type="submit" name="next" value="Weiter >" />
      <input type="submit" name="escape" value="Abbrechen" />

    Die ganzen schon in vorherigen <form>'s gesammelten Werte werden in Sessions oder in <input type="hidden">-Feldern gespeichert.

    Das Script, das das Ding bearbeitet, schaut, ob $_GET["next"] gesetzt ist. Wenn schon, kommt der nächste schritt (nächstes formular).

    Wenn $_GET["escape"] gesetzt ist, kommt eine schöne es-wurde-abgebrochen-meldung (kann man auch weglassen mit dem Abbrechen).

    und wenn $_GET["back"] gesetzt ist, werden die ncoh vom vorhergehenden Formular gespeicherten Werte genommen, das Formular von vorher genommen, die Werte da eingesetzt und das Ding angezeigt.

    Somit passiert alles serverseitig. Ist aber vielleicht auch ein winziges bisschen komplierter dadurch. Nun, gemacht habe ich es noch nicht, mal sehen, wenn ich mal Zeit habe ;-)

    WauWau

    --
    ss:) zu:) ls:& fo:) de:] va:) ch:° n4:( rl:( br:^ js:| ie:% fl:{ mo:|
    E-Mail WauWau: [mailto:der-wauwau@gmx.de]
  2. Hi Wini,

    wenn Du JS verwenden kannst, dann könnte das vielleicht eine Lösung sein:

    Den Submit-Button so lassen wie er ist.
    Den "Back-Button" onClick auf eine Funktion verweisen die das "action"-Attribut ändert.

    Beispiel:

    Das Formular ist irgendwie so definiert:
    <form name="irgendwie" action="seite.php" method="get">

    Die Funktion für den "Back-Button":

    function backButton(){
     document.irgendwie.action = "andreSeite.php"
    }

    Ich hab keinen Schimmer von PHP, DOM-mäßig kann man das aber so machen, da "action" eine schlichte String-Property ist, die dankbarerweise auch beschrieben werden kann. Wenn der User das nächste mal auf die Seite kommt - also wieder einen Schritt nach vorne macht - dann gilt wieder die im HTML angegeben "action".

    (das geht, wenn ich mich nicht ganz irre, ab NN4/IE4)

    Vielleicht hilft's ja

    Grüsse
    Oliver