Forum

DynPG Forum

Foren

Login

Suchen

Forenübersicht - Allgemeines Forum - Bestellformular über mehrere Seiten

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