Mit Formular-Variablen weiterarbeiten

Bastian

Bastian

Aktives Mitglied
Thread Starter
Dabei seit
20.06.2003
Beiträge
533
Reaktionspunkte
10
Hallo

Ich habe ein kniffliges Problem, dessen Lösung mir nicht klar werden will. Ich habe ein grosses Formular mit vielen Textfeldern.
Nach dem Senden möchte ich, dass die Angaben in eine MySQL-Datenbanktabelle eingetragen werden.

Das sieht in etwa so aus:
Die Textfelder sind fortlaufend nummeriert (name1, name2, name3, ...). Nun möchte ich mit einer For-Schleife jedes Textfeld als einen Datensatz einfügen, sodass ich die INSERT-Anweisung usw. nur einmal einzugeben brauche.

Das Problem ist, dass ich das folgendermassen tun wollte, was nicht funktioniert.
Die For-Schleife läuft mit Index i von 1 bis 10 (es sind 10 Textfelder). Wenn ich nun in die Schlaufe

$name = $name . $i

schreibe, geht das ja nicht.

Hat jemand einen Tipp, wie ich das hinkriege? Das wäre super! :)
 
Hallo, das ist eigentlich nicht so schwer:

In deinem HTML Formular nennst du Felder z.b.

HTML:
<input type="text" value="" name="name[1]" />
<input type="text" value="" name="name[2]" />

Dann kannst du das mit einer foreach() Schleife abgreifen:
PHP:
foreach($_POST['name'] AS $key => $value) {
    $name = $value;
}
$_POST['name'] ist hier dein Array in dem alles steht. Auch wenn der Benutzer ein Input leerlässt enthält es einfach '' bzw NULL

Hab lange kein PHP gemacht, kann sein das die foreach() nicht 100%ig ist...

hth
 
Toll, das werde ich gleich ausprobieren. Vielen Dank! :)
 
Du kannst aber auch auf das Array verzichten. Ist zwar nicht so eine schöne Lösung, aber ich finde es ist Einfach. Gerade wenn du weisst wieviele Variablen du übertragen willst.
ins Formular:
PHP:
<input type="text" name="name1" value="">
<input type="text" name="name2" value="">
.
.
.
<input type="text" name="name10" value="">

und die Sql-Anweisung:

PHP:
$sql="
...
INSERT INTO tabelle (name1, name2, ... ,name10) VALUES ($_POST[name1],$_POST[name2],...,$_POST[name10],)";
...
 
Zurück
Oben Unten