sinnvolles Formularhandling
Inge
- php
Hallo,
ich möchte auf eine Website folgendes umsetzen:
Es gibt ein HTML Formular, welches aus 3 Schritten und somit aus 3 Dateien besteht (form1.php, form2.php, form3.php). Beim Aufruf kommt man auf form1.php; von dort auf per link weiter auf form3.php und von dort aus auf form3.php. In form 3.php gibt es einen letzten Link, welcher auf eine Bestätigungseite führt und die eingegebenen Daten aus den 3 Dateien per E-Mail verschickt.
Dieses Formular ist von 25 verschiedenen Links aus aufrufbar.
In abhängigkeit des Links, über welchen auf das Formular gekommen wurde, sollen in form2.php andere Formularfelder angezeigt werden.
Wie realisiere ich nun sowas?
Auf dem Apache Server läuft PHP; eine MySQL DB hab ich auch zur Verfügung.
Ich dachte an folgende Lösung:
Bspl.:
<a href="form1.php?link=1">link1</a>
<a href="form1.php?link=2">link2</a>
<a href="form1.php?link=25">link25</a>
Die eingegeben Daten aus form1.php werden bei klick auf den link zum form2.php in einer Session gespeichert.
Am Anfang von form2.php wird ein mehrdimensionales Array definiert, welches die Angaben zu den Feldern je Link hat
Bspl.:
array[link1][feld1][name] = 'foo'
array[link1][feld1][type] = 'text'
array[link1][feld1][length] = '20'
array[link1][feld2][name] = 'bar'
array[link1][feld2][type] = 'radio'
array[link1][feld3][name] = 'irgendwas'
array[link1][feld3][type] = 'text'
array[link1][feld3][length] = '20'
array[link2][feld1][name] = 'foo'
array[link2][feld1][type] = 'text'
array[link2][feld1][length] = '20'
array[link25][feld1][name] = 'foo'
array[link25][feld1][type] = 'text'
array[link25][feld1][length] = '20'
Dieses Array wird nun je nach übergebenem Query String (der natürlich von form1 auf form2 mitgeschleift wird) ausgelesen und die entsprechenden Eingabefelder werden generiert.
Die Eingabe wird dann bei Klick auf weiter wieder im Array gespeichert.
Ist das eien gute Möglichkeite? Oder wie gehts einfacher?
Vielen Dank für Euere Hilfe!!
Hi,
Ist das eien gute Möglichkeite?
ja.
Oder wie gehts einfacher?
Statt des Arrays könntest Du die Default-Daten in einer DB-Tabelle ablegen (sofern möglich). Das dürfte ggf. auch die Wartbarkeit erhöhen.
Cheatah
Statt des Arrays könntest Du die Default-Daten in einer DB-Tabelle ablegen (sofern möglich). Das dürfte ggf. auch die Wartbarkeit erhöhen.
Vielen Dank!
Insgesamt gibt es ja folgende Attribute:
Wie speichere ich diese nun sinnvoll ab? Z.B. für Radio-Buttons?!
Hi,
Insgesamt gibt es ja folgende Attribute:
[...]
und das ganze für n Eingabefelder.
Wie speichere ich diese nun sinnvoll ab?
Linknummer (=Gruppe), Eingabefeldnummer, Liste der benötigten Attribute. Vergiss dabei nicht type. checked und selected kannst Du zusammenfassen.
Cheatah
Hello,
Insgesamt gibt es ja folgende Attribute:
- Name
- Defaultvalue
- length
- maxsize
- Beschreibung
- checked
- selected
Wie speichere ich diese nun sinnvoll ab? Z.B. für Radio-Buttons?!
Ohne Verwendung einer Session kannst Du die tatsächlich im Array von Form zu Form posten. Baust Du einfach ein Bildchen weniger ein, dann stimmt die Traffic-Bilanz wieder *g*
Array füllen
serialisieren
base64-codieren
versenden
base64-decodieren
deserialisieren
Array benutzen
serialisieren
base64-codieren
versenden
...
Liebe Grüße aus http://www.braunschweig.de
Tom