Form -> Vor- und Zurück-Button
Indyaner
- html
HI
Ich habe ein 4 Schritte System zur Entgültigen Bestellabgabe gemacht.
Da wird via form-buttons (type="image") die einzelnen Schritte durchlaufen und mit einigen hiddenfields Die Daten übergeben.
Ich wollte jetzt auch zu den Schritten Zurück-Buttons einfügen ... doch stosse ich da auf probleme.
Wenn ich einfache JavaScript:history.back();-Button benutze will die Seite jedesmal neu laden und die Werte gehen (vermutlich) verloren. Auch kann ich vorangegangene Werte nicht darstellen.
Wie kann ich denn dem Form sagen dass er die Werte mitnimmt wenn ich zur nächsten Seite gehe... oder zur Vorherigen Seite gehe?
Sollte ich das mit JavaScrpt lösen?
ciao
PS: Was meint der Fehler "Error not found: de_E_homepage_invalid" in diesem Forum. Erschiehn mir grade als ich dieses Thread abschicken wollte...
da wirst du wohl nicht darum herumkommen die werte ständig von seite zu seite mitzuschleppen. und noch eine statusvariable mitgeben. wenn status == 1 dann mache das und das.
hast du php zur verfügung? wenn ja lassen sich die variablen leicht auslesen.
wenn nicht, musst du das über javascript machen. einen ansatz gibt es hier:
http://www.grammiweb.de/anleitungen/ka_variablen.shtml
gruß
anarkist
Hi
Ja, ich setze PHP auch dort ein...
Ich checke mit PHP die eingaben und setze notfallshalber den nächsten schritt nicht fort sondern lasse den kunden nochmal die eingaben prüfen...
Aber wie kann ich einen zurück-button dann durch php realisieren?
Ich probierte es schon dem Image-Button einen value zu verpassen und danhand seines values zu sehen ob es der NEXT oder BACK button ist...
Doch das klappt nicht =/
Wie habt ihr/würdest ihr es denn machen? (ihr=beide antworter) =)
Hilfe wäre klasse!
ciao
Ich probierte es schon dem Image-Button einen value zu verpassen und danhand seines values zu sehen ob es der NEXT oder BACK button ist...
Doch das klappt nicht =/
wie wärs mit <input type ="hidden" value="array[]">?
Wie habt ihr/würdest ihr es denn machen? (ihr=beide antworter) =)
mit einem status. du hast zwei buttons einen für vor, einen für zurück.
ich schreib das hier mal nur schemenhaft ,mit nur einem formulareintrag, bei mehreren -> schleifen verwenden. falls du nicht durchsiehst, melde dich einfach nochmal.
<head>
<javascript>
function combineAndSend() {
document.vor.formular.value = document.usereingaben.formularfeld1.value;
</javascript>
</head>
<form name="usereingaben"> // dein formularfeld
<input type = "text" name ="formularfeld1">
</form>
<form name="vor" onSubmit="combineAndSend ()">
<input type ="hidden" name="formular">
<input type ="hidden" name="sent" value="1">
<input type ="submit">
<form name="zurück" onSubmit="combineAndSend ()">
<input type ="hidden" name="formular">
<input type ="hidden" name="sent" value="2">
<input type ="submit">
damit packst du alles in ein hidden field und übergibst die werte, je nachdem wo du hinmöchtest.
in php:
<? php
if ($sent == 1) {
tu dies
}
if ($sent == 2) {
tu das
}
alles klar?
gruß
anarkist
NAja.. so hätte ich es ja auch gemacht.
Worum es mir ging war es dass ich durch die Benutzung von PHP JavaScript umgehen kann.
Das Zuweisen von Hiddenfields via Java mit document habe ich schon öfters gemacht...
Meintet ihr nicht dass man mit PHP eine Lösung finden kann?
Sonst könnte ich auch einfach statt 2 Forms anzulegen einen OnmouseOver auf die Buttons legen und bei jedem MouseOver den Action des Form ändern (via JavaScript)
Andere möglichkeiten? =)
ciao
hi,
Meintet ihr nicht dass man mit PHP eine Lösung finden kann?
zu welchem problem genau?
weiter oben schriebst du
Ich checke mit PHP die eingaben und setze notfallshalber den nächsten schritt nicht fort sondern lasse den kunden nochmal die eingaben prüfen...
gut so ...
Aber wie kann ich einen zurück-button dann durch php realisieren?
wenn du eine solche "zurück"-funktionalität brauchst - so lasse mit PHP die vorherige(n) stufen des formulares erneut ausgeben, und belege die felder mit den bisher getätigten eingaben vor - die du dir aus einer session holst, in der du sie vorher abgelegt hast.
siehe auch
http://www.php.net/manual/de/ref.session.php
http://www.php-faq.de/ch/ch-version4_session.html
http://tut.php-q.net/sessions.html
gruß,
wahsaga
Hi
Ich komme da nicht mit... ich verstehe es nicht.
Mit Session habe ich es auch schoneinmal probiert zu realisieren. Nur ist das Problem mit Sessions dass Sie erst durch session_start neu geladen werden.
Das Hauptproblem... (denke ich) liegt darin dass ich meinem script nie sagen kann was für ein Button gedrückt wurde.
Submit ist für ihn ein Submit... egal ob vor oder zurück...
Ich bräcuhte etwas was dem script sagt: "Er hat den ZURÜCK-Button gedrückt..." oder eben den next-button.
Wo ist da die schnittstelle?
Geht es dass ich Buttons value zuweisen kann die Sie auch mitnehmen?
Dann hätte ich meinen schlüssel.
Aber so wie es grade ist geht es irgendwie nicht. Ich kann schlecht ein Hidden-fields setzen. Ausser das Hiddenfield würde erkennen welcher button geklickt wurde und das meinem script sagen.
Kurzgesagt: Mir gehts wie meinem script... ich weiss weder vor noch zurück =/
ciao
hi,
Ich bräcuhte etwas was dem script sagt: "Er hat den ZURÜCK-Button gedrückt..." oder eben den next-button.
[...]
Geht es dass ich Buttons value zuweisen kann die Sie auch mitnehmen?
in den HTML-richtlinien des W3C ist eindeutig definiert, dass für jedes "successful form control" das paar name _und_ wert übertragen werden soll.
in so fern verstehe ich nicht, wo genau dein problem liegt, den gedrückten button anhand seines namens (sofern eindeutig) oder seines wertes (sofern name bei mehreren buttons identisch) zu identifizieren.
tipp: schau dir doch mal mit print_r($_POST) (bzw. $_GET) an, welche informationen alle übermittelt werden, wenn du ein formular abschickst.
gruß,
wahsaga
das mit dem print_r war sehr aufschlussreich =)
Danke =)
ciao
Hallo,
Wie kann ich denn dem Form sagen dass er die Werte mitnimmt wenn ich zur nächsten Seite gehe... oder zur Vorherigen Seite gehe?
Im Idealfall löst du das über eine serverseitetige Sprache (z.B. PHP), falls dir eine solche zur Verfügung steht.
Viele Grüße
Patrick