Formulare und Arrays

scanline

Erfahrenes Mitglied
Hi Leudz,

ich versuche im Moment, ein Formular mit Hilfe von Arrays zu realisieren und frach mich allmählig, ob das ganze überhaupt Sinn macht, und gebe selbige Frage mal einfach weiter.

Schnell noch zu den Details...
1. Das Formular enthält ungefähr 25-30 Felder aller Art, Checkboxen, Pulldowns, Textareas, Textfelder und Radios.
2. Es gibt ene Vorschaufunktion mit back-Button

und dort beginnt schon das Problem: Das gezielte Zurückspielen der einzelnen Array-Eemente in die Textfelder und Radio-, Pulldown-Belegungen etc., die ja nicht verloren gehen sollen.
Ich dachte mir anhand des Umfang der Variablen wäre es sinnvoller, alles über ein Array zu übergeben, anstatt seitenweise Hidden-Inputs zu schreiben, funzt ja auch riesig, aber der Aufwand des gezielten Auspacken der enzelnen Array-Elemente macht diesen kleinen Vorteil gleich wieder zunichte.

Bevor ich diesen Versuch vollends verabschiede, woll ich nochmal die Meinung der Profis hören...

Gruß
Micha
 
oh doch, das macht sehr wohl einen grossen vorteil:

nehmen wir mal an du hast ein paar standardformularelemente:
name, vorname, strasse, tele, u.s.w.

die inputs heissen dann wie folgt:
<input ... name="form[name]"> u.s.w.

nach dem submit hast du alle formularvariablen in diesem array ($form)
$form['name'] der name u.s.w.

du kannst dir so den query zusammenbasteln
PHP:
while(list($k,$v)=each($form))
{
   if ($KEYS!="") $KEYS .= ", ";
   if ($VALS!="") $VALS .= ", ";
   $KEYS .= $k;
   $VALS .= "'".$v."'";
}
$sql = "INSERT INTO blah (".$KEYS.") VALUES (".$VALS.")";
bei grossen formularen ist das ziehmlich praktisch ...

und wenn du viel in den formulare rumnavigieren musst (back/next, u.s.w.), kannst du einfach ein einer while schleife die variablen als hiddens rausprinten, damit sie immer mitgeschickt werden.

got the point ? ;)
 
Zuletzt bearbeitet von einem Moderator:
bis dahin kein Problem...schwierig wird es erst, wenn ich bei einem BACK die Formularfelder Value-technisch zurückbelegen muss.
Dafür muss ich gezielt array-Elemente selektieren und im Form setzen.
Dass ist ebenfalls möglich, klar, nur suchte ich ursprümglich nach ener möglichst eleganten Lösung.
Jedenfalls finde ich das recht aufwendig und kompliziert...oder hast Du dafür auch eine gute Lösung?
Gruß
Micha
 
du musst schon jedes formularelement mit einem value="<?=$form['name']?>" (oder aehnlich) ausstatten...

die formulare koenntest du natuerlich auch komplett dynamisch generieren, aaaber dabei wirds schwierig mit dem automatisierten design/ausrichtung der elemente...

die formulare wuerd ich daher doch lieber selber per "hand" basteln...
 
Zurück