longis
Beiträge: 131
|
Bestellformular über mehrere Seiten
|
Salue mitenand
Wie kann ich ein Bestellformular über mehrere Seiten generieren? Der Kunde sollte dann aber ein Bestellformular als Mail erhalten.
Beispiel:
1. Seite (allgemeine Bestellung wo der Kunde auswählen kann)
2. Seite (Kundenangaben wie Name usw.)
3. Seite (evtl. Absenden oder löschen. Dies könnte auch auf Seite 2 sein.)
Ist das überhaupt möglich ohne Shop?
Vielen Dank für die Antwort.
|
Liebe Grüsse
Marlies
|
|
|
30.10.2007 11:57
|
ZITIEREN
| ANTWORTEN
|
Daniel Schliebner
Beiträge: 382
|
Hallo longis,
prinzipiell ist das nicht möglich. Der Formularprozessor kann nur bis zu einem bestimmten Grad generisch gehalten werden. Ein solcher Anwendungsfall ist dabei nicht berücksichtigt.
Jedoch kannst Du das durch einen Trick erreichen: separiere die unterschiedlichen Formulare innerhalb der eigentlichen Formulartabelle im Editor durch (in deinem Fall drei) Untertabellen mit den ids "step1", "step2" und "step3". Gib außerdem noch unter "Erweitert - CSS-Stil" ein:
display: none;
(aber nur in den Tabellen "step2" und "step3"). Dadurch kannst du nun mithilfe von JS auf die Tabellen zugreifen.
Unterhalb oder oberhalb (jedenfalls außerhalb) der Formulartabelle kannst du nun drei Links ein (z.B. "Schritt 1 - Schritt 2 - Schritt 3"). Bei diesen Links gibst du unter "Link-URL" einfach ein "#" ein (ohne Gänsefüße). Dann gehst du auf "JS-Events" und gibst dort unter "onclick" ein:
document.getElementById('step1').style.disyplay = 'block';
document.getElementById('step2').style.disyplay = 'none';
document.getElementById('step3').style.disyplay = 'none';
(für den Link auf Schritt 1)
document.getElementById('step1').style.disyplay = 'none';
document.getElementById('step2').style.disyplay = 'block';
document.getElementById('step3').style.disyplay = 'none';
(für den Link auf Schritt 2)
document.getElementById('step1').style.disyplay = 'none';
document.getElementById('step2').style.disyplay = 'none';
document.getElementById('step3').style.disyplay = 'block';
(für den Link auf Schritt 3)
Damit wird nun mithilfe von Javascript jeweils nur ein Formular eingezeigt.
|
Mit freundlichen Grüßen
ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de
Bietzkestraße 18A
10315 Berlin
GERMANY
Tel.: +49 30 33980300
|
|
|
30.10.2007 16:52
|
ZITIEREN
| ANTWORTEN
|
longis
Beiträge: 131
|
Salue Daniel
Vielen Dank. Werde dies gerne so versuchen.
Liebe Grüsse
Marlies
|
Liebe Grüsse
Marlies
|
|
|
30.10.2007 17:03
|
ZITIEREN
| ANTWORTEN
|
longis
Beiträge: 131
|
Salue Daniel
Werden die drei Steps im gleichen Formular (sprich im gleichen Artikel) oder in unterschiedlichen Artikel erstellt?
Vielen Dank.
|
Liebe Grüsse
Marlies
|
|
|
31.10.2007 15:10
|
ZITIEREN
| ANTWORTEN
|
longis
Beiträge: 131
|
Salue Daniel
Das mit dem # funktioniert leider nicht. Die Eingabe wird automatisch mit index.html /index.php ersetzt.
Gibt es hier noch eine andere Möglichkeit?
|
Liebe Grüsse
Marlies
|
|
|
31.10.2007 15:18
|
ZITIEREN
| ANTWORTEN
|
Daniel Schliebner
Beiträge: 382
|
Hallo!
Zitat | Werden die drei Steps im gleichen Formular (sprich im gleichen Artikel) oder in unterschiedlichen Artikel erstellt? |
Genau: im gleichen Artikel. Wie gesagt, alles in ein Formuar. Die "Steps" sind dann deine unterschiedlichen "Seiten", welche du einfach in eigene Tabellen mit den genannten IDs packst. Diese Tabellen dann alle in die Formulartabelle.
Zitat | Das mit dem # funktioniert leider nicht. Die Eingabe wird automatisch mit index.html /index.php ersetzt. |
Achso. Ja, was sogar besser ist: trage einfach in das URL-Feld ein, was du willst und dann hinter jedes "docuement.get..." ein return false; also z.B.:
document.getElementById('step1').style.disyplay = 'block'; return false;
document.getElementById('step2').style.disyplay = 'none'; return false;
document.getElementById('step3').style.disyplay = 'none'; return false;
Damit wird der Link nicht ausgeführt, sondern nur der JS-Code.
Achso und falls das nicht klar sein sollte: die o.g. Zeilen JS-code können im Feld "onclick" einfach alle nebeneinander stehen.
Den Umbruch nach "return false;" habe ich nur der Übersicht halber rein genommen.
|
Mit freundlichen Grüßen
ds-develop
Daniel Schliebner
Webmaster & Programmierer
http://www.ds-develop.de
Bietzkestraße 18A
10315 Berlin
GERMANY
Tel.: +49 30 33980300
|
|
|
31.10.2007 17:23
|
ZITIEREN
| ANTWORTEN
|
Su
Beiträge: 416
|
Hallo miteinander
Auch hier meine Frage: Gibts inzwischen einfachere Lösungen, oder würdet ihr noch immer das oben stehende Vorgehen empfehlen?
Im Voraus vielen Dank für Infos
und liebe Grüsse
Susanna
|
http://www.artundmedia.ch
|
|
|
17.01.2012 17:18
|
ZITIEREN
| ANTWORTEN
|
Chris
Beiträge: 510
|
hi susanna,
das ist doch bereits eine relativ einfach Lösung.. findest Du nicht? ;)
Eine andere Lösung aber bei weitem "komplizierter" wäre ein Custom-Formhandler, welcher jeweils die Formulardaten entgegennimmt, in einer Session zwischenspeichert und zum nächsten Artikel weiterleitet. Wenn das letzte Formular versendet wird, müssten die gesamten Daten aller Schritte abgespeichert und per Email versendet werden.
gruss
chris.w.
|
*************************************
Christoph Würsch
Urbanización Aranjuez
Asturianas No° 23
Asuncion / Paraguay
-------------------------------------
Tel: +595 (0)21 332 984
-------------------------------------
http://www.chriswuersch.com
*************************************
|
|
|
17.01.2012 20:54
|
ZITIEREN
| ANTWORTEN
|