phpbar.de logo

Mailinglisten-Archive

[php] Formulardaten per Schleife updaten

[php] Formulardaten per Schleife updaten

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Son Okt 22 15:23:53 CEST 2006


Hallo Werner,

Am Sonntag, 22. Oktober 2006 15:10 schrieb Werner Laude:
> abfrage ob submitted wurde
>
>   wenn ja dann
>   foreach (???)
>     {update artikel der die id hat}
>
> else
>
> abfrage db
>
> form-tag name "test" auf
> schleife start
> Artikeldaten + ein input feld + hidden feld mit der id
> schleife ende
> form-tag zu
>
>
> So war meine Überlegung.
>
> Zum Puzzel fehlt mir jetzt noch die foreach Formulierung;
> mir ist nicht ganz klar in welchen Container  die Variablen nun
> liegen...müßte doch $_POST['test'] sein, und wie ich das aufdrösele
>
> lese jetzt mal foreach..

Du hast noch einen anderen Fehler drin, nämlich in der Benennung Deiner 
Formularfelder:

<input name="artikel_reihe" type="text" value="<?php echo 
$show_artikel['artikel_reihenfolge']; ?>">

<input name="_id" type="hidden" value="<?php echo 
$show_artikel['artikel_id'] ?>" />

Der erste Schritt wäre, sie wie folgt zu benennen:

	name="artikel_reihe[]"
	name="_id[]"

Nur so kommt auf der anderen Seite auch jeweils ein Array an.

Der zweite Punkt wäre, die Felder so zu benennen, daß Du auch in der 
foreach-Schleife einfach einen Zusammenhang zwischen "artikel_reihe" 
und "_id" herstellen kannst. Dafür wäre z.B. solch eine Benennung 
hilfreich:

name="artikel[<?php echo 
$show_artikel['artikel_id'] ?>][artikel_reihe]"
name="artikel[<?php echo 
$show_artikel['artikel_id'] ?>][_id]"
(wobei Du Dir bei dieser Konstruktion das versteckte Feld "_id" sparen 
könntest)

Dann könntest Du die foreach-Schleife so aufbauen:

foreach ($_POST['artikel'] as $artikel) {
	echo('<br />['.$_POST['artikel']['_id'].'] '.$_POST['artikel']
['artikel_reihe']);
}


Viele Grüße
Lutz

php::bar PHP Wiki   -   Listenarchive