mehrseitiges Formular

mehrseitiges Formular

am 02.12.2006 17:34:46 von Swenja Schorp

Hallo,

Ich habe ein kompliziertes mehrseitiges Formular das in etwa so
funktioniert. User betritt Hauptformular A füllt dort einen Teil aus,
geht dann ins Formular B von dort zurück nach A, füllt weiter aus,
geht dann ins Formular C und wieder zurück nach A, wo er dann auf
den Submitbutton drückt und zurück zum Menu gelangt.

Mit dem Submit werden die Daten von Formular A, B, C dann in die DB
geschrieben oder geupdatet, abhängig davon über welchen Menueintrag
das Formularkonstrukt betreten wurde.

Zur Realisierung fallen mir nun zwei Möglichkeiten ein,
einmal die Daten in Sessionvariablen zwischenspeichern oder jedesmal
über POST/GET und Hidden Felder mitschleifen.

Da ich in PHP wenig Erfahrung habe, würde ich gern mal Eure Meinung dazu
hören was sich so in der Praxis als geeigneter erweist.

Re: mehrseitiges Formular

am 02.12.2006 19:16:32 von Rudi Menter

Swenja Schorp:

> Ich habe ein [] mehrseitiges Formular
> ...
> wo er dann den Submitbutton drückt und zurück zum Menu gelangt.

Also per Definition bedeutet "ein Submitbutton = ein Formular".

> Mit dem Submit werden die Daten von Formular A, B, C

Nun, das ist bisher als *ein* Formular definiert...

> abhängig davon über welchen Menueintrag das Formularkonstrukt
> betreten wurde

Dazu mußt du nur ein "Flag" mitführen und z.B. hidden übermitteln.

> einmal die Daten in Sessionvariablen zwischenspeichern oder jedesmal
> über POST/GET und Hidden Felder mitschleifen.

Ein Formular bedeutet auch einmal abschicken.

Wie man *optisch-gestalterisch* ein "mehrseitiges Forumular"
gestalten kann, weiß ich nicht. Aber es ist nicht klar, ob
es nur das ist, was du eigengtlich willst.

Du kannst jedenfalls mehrere Submit-Buttons, d.h. mehrere Formulare
(quasigleichzeitig) erzeugen, die, zum Beispiel, wechselseitig
unsichtbar sind, je nach Kontext ("Menü-Herkunft"), das kann aber
schnell sehr, sehr unübersichtlich werden.

Am besten wäre sicherlich, wenn du genau beschreibst, was du vorhast...

fG
--

Re: mehrseitiges Formular

am 02.12.2006 19:20:04 von Claus Reibenstein

Swenja Schorp schrieb:

> Ich habe ein kompliziertes mehrseitiges Formular das in etwa so
> funktioniert. User betritt Hauptformular A füllt dort einen Teil aus,
> geht dann ins Formular B von dort zurück nach A, füllt weiter aus,
> geht dann ins Formular C und wieder zurück nach A, wo er dann auf
> den Submitbutton drückt und zurück zum Menu gelangt.

Merkwürdige Spaghetti-Struktur. Lässt sich das nicht linearisieren?

> Zur Realisierung fallen mir nun zwei Möglichkeiten ein,
> einmal die Daten in Sessionvariablen zwischenspeichern oder jedesmal
> über POST/GET und Hidden Felder mitschleifen.

POST und GET haben den Nachteil, dass die Daten vom Server zum Browser
und wieder zurück zum Server übertragen werden müssen. Sie erhöhen also
den Traffic unnötig. Sessionvariablen werden hingegen auf dem Server
zwischengespeichert.

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /

Re: mehrseitiges Formular

am 02.12.2006 20:59:14 von Swenja Schorp

Claus Reibenstein schrieb:

> Merkwürdige Spaghetti-Struktur. Lässt sich das nicht linearisieren?

Nein, geht nicht mit den UR's.

> POST und GET haben den Nachteil, dass die Daten vom Server zum Browser
> und wieder zurück zum Server übertragen werden müssen. Sie erhöhen also
> den Traffic unnötig. Sessionvariablen werden hingegen auf dem Server
> zwischengespeichert.

Ich dacht mehr an mögliche Probleme die die Sessionvariablen mit sich
bringen, wenn der User z.B Teile des Formulars in mehren Tabs,
Browserfenstern aufmacht oder in einem Tab einen Datensatz neu anlegt
und im nächsten einen anderen Datensatz updaten will, oder zwei
Datensätze gleichzeitig anlegt oder was dem User sonst noch einfallen
könnte zu tun.

Ich denk mal der Aufwand der getrieben werden muss, damit da kein Salat
entsteht ist auch nicht zu vernachlässigen.

Re: mehrseitiges Formular

am 02.12.2006 22:09:08 von Rudi Menter

+0100 schrieb Swenja Schorp:
> Claus Reibenstein schrieb:

>> Merkwürdige Spaghetti-Struktur. Lässt sich das nicht linearisieren?
>
> Nein, geht nicht mit den UR's.
>
>> POST und GET haben den Nachteil, dass die Daten vom Server zum Browser
>> und wieder zurück zum Server übertragen werden müssen. Sie erhöhen also
>> den Traffic unnötig. Sessionvariablen werden hingegen auf dem Server
>> zwischengespeichert.
>
> Ich dacht mehr an mögliche Probleme die die Sessionvariablen mit sich
> bringen, wenn der User z.B Teile des Formulars in mehren Tabs,
> Browserfenstern aufmacht oder in einem Tab einen Datensatz neu anlegt
> und im nächsten einen anderen Datensatz updaten will, oder zwei
> Datensätze gleichzeitig anlegt oder was dem User sonst noch einfallen
> könnte zu tun.
>
> Ich denk mal der Aufwand der getrieben werden muss, damit da kein Salat
> entsteht ist auch nicht zu vernachlässigen.

Ich auch. Nimm doch einfach eine fertige Bibliotheks-Lösung...

Re: mehrseitiges Formular

am 03.12.2006 15:36:30 von Claus Reibenstein

Swenja Schorp schrieb:

> Claus Reibenstein schrieb:
>
>> Merkwürdige Spaghetti-Struktur. Lässt sich das nicht linearisieren?
>
> Nein, geht nicht mit den UR's.

Womit?

> Ich dacht mehr an mögliche Probleme die die Sessionvariablen mit sich
> bringen, wenn der User z.B Teile des Formulars in mehren Tabs,
> Browserfenstern aufmacht oder in einem Tab einen Datensatz neu anlegt
> und im nächsten einen anderen Datensatz updaten will, oder zwei
> Datensätze gleichzeitig anlegt oder was dem User sonst noch einfallen
> könnte zu tun.

Wenn ein Benutzer in mehreren Tabs oder Fenstern arbeitet, stellti sich
das für Dein System so dar, als ob mehrere Benutzer gleichzeitig auf
Deinem System werkeln. Das ist ein Standard-Problem, das so oder so
irgendwie geregelt werden muss. Ob mit oder ohne Sessions, bleibt dabei
Dir überlassen.

> Ich denk mal der Aufwand der getrieben werden muss, damit da kein Salat
> entsteht ist auch nicht zu vernachlässigen.

Das musst Du sowieso sicherstellen.

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /

Re: mehrseitiges Formular

am 03.12.2006 15:58:14 von Rudi Menter

Reibenstein:

> Ob mit oder ohne Sessions, bleibt dabei Dir überlassen.
>
>> Ich denk mal der Aufwand der getrieben werden muss, damit da kein Salat
>> entsteht ist auch nicht zu vernachlässigen.
>
> Das musst Du sowieso sicherstellen.
>
> Gruß. Claus
> ,~°O O
> O ,´ / |/|\
> / |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
> /__| `~...............................................~´ /___|/ /

Danke, denke ich ebenfalls, also wenn du nicht auf eine fertige
Bibliothekslösung "zurückgreifen" magst, dann kannst du ja später
mal sagen, wie der Mehrseitendialog geworden ist!

Re: mehrseitiges Formular

am 05.12.2006 22:04:08 von Swenja Schorp

Rudi Menter schrieb:

> Ich auch. Nimm doch einfach eine fertige Bibliotheks-Lösung...

Gerne, wenn Du eine kennst.
Hab mal den QuickForm Controller ausprobiert.
Gleiches Problem. User kann nicht gleichzeitig in zwei Tabs zwei Records
anlegen. Da die Daten, die in dem einem Tab eigegeben wurden, die Daten
in dem anderen Tab überschreiben.

Re: mehrseitiges Formular

am 05.12.2006 22:28:40 von Rudi Menter

Swenja Schorp:

> User kann nicht gleichzeitig in zwei Tabs zwei Records anlegen.

Darf ich Tabs mit Formular gleichsetzen? Wenn nicht, weshalb kannst
du diese Daten nicht sachlich-logisch trennen (optisch geht ja alles)?

Meinst du, daß in beiden Tabs die gleichen Eingabefelder oder
zumindest bestimmte gleiche Parameter verwendet werden? Falls
ja, dann mußt du andere Parameter, also Variablennamen verwenden
und diese dann jeweils im "anderen Tab" hidden 'mitschleifen' und
wenn der User dann den "wirklich finalen" Submitbutton gedrückt hat,
dann kannst du dich eben für einen der beiden Datensätze, entsprechend
deiner Absicht, entscheiden. (Das wirds wohl sein.)

> Da die Daten, die in dem einem Tab eigegeben wurden, die Daten
> in dem anderen Tab überschreiben.

Ok bei QuickForm möglicherweise. Aber generell tun Daten gar nichts,
sondern der Code, den du schreibst...

Ich habe bereits verstanden, daß du eine Dialogbox mit Tabs
optisch nachbilden willst, aber eine Neuzeichnung deiner Seite
bekommst du mit vertretbaren Mitteln eben nur durch jeweiliges
Abschicken der Tabs hin, so daß du dann im Prinzip zwei Formulare
hast, so daß du die Formulardaten /beider/ Tabs 'mitschleifen'
mußt. Nun, aber außer etwas Arbeit sehe ich hier kein Problem,
das müßtest du erläutern.

Wegen Bibliotheken kannst du Websiten 'finden' (bzw. suchen),
die so ähnlich aussehen, wie du das willst und dann versuchen
herauszubekommen, welche Bibliothek (oder Contentmanagementsystem)
verwendet wird... Und was bei QuickForm das Problem wäre kann ich,
wie gesagt, mangels Informationen nicht nachvollziehen, aber
vielleicht läßt sich das ja logisch oder programmtechnisch erledigen...

Re: mehrseitiges Formular

am 06.12.2006 08:19:17 von Bernhard Brockmann

Swenja Schorp schrieb:

> Zur Realisierung fallen mir nun zwei Möglichkeiten ein,
> einmal die Daten in Sessionvariablen zwischenspeichern oder jedesmal
> über POST/GET und Hidden Felder mitschleifen.
>
> Da ich in PHP wenig Erfahrung habe, würde ich gern mal Eure Meinung dazu
> hören was sich so in der Praxis als geeigneter erweist.

Hallo,

mein Vorschlag ist,

alle Variablen in einer Session speichern.
In den Reitern einen Link mit javascript:submit(). Wichtig ist, dass
eine Kennung des gerade ausgefüllten Tabs mitgeschickt wird, damit klar
ist, welche Daten nei geschrieben werden müssen.
Einen Submit-Button, um den eigentlichen Prozess anzustoßen.

Eine lösung über Hidden-Variablen halte ich für zu aufwendig, weil immer
alle! Variablen aller Tabs mitgeführt werden müssen.

Bernhard