Mailinglisten-Archive |
Hallo Björn,
Björn Dautermann wrote:
> foreach ( $_POST['kartonart'] as $k => $v ) { // $k = key, $v = value
> echo $k, $v;
$_POST['kartonart'] ist nun ein indiziertes Array.
Die Schlüssel holst du laut Schleifendefinition in $k und die Werte in $v.
> if ((isset ($v)) AND (isset($_POST['menge'][$k]))) {
Mit $k kommst du hier nicht weiter, da von HTML eh nur die geklickten
Checkboxen übergeben werden (im Gegensatz zu den Inputfeldern). Alle
nicht abgehakten Checkboxen werden nicht im $_POST['kartonarten']
auftauchen. Folglich werden die Schlüssel im Array ohne die fehlenden
Checkboxen durchnummeriert. Der erste Eintrag im Array
$_POST['kartonart'] hinter Index 0 kann nicht zwingend in Verbindung mit
dem ersten Eintrag im Array $_POST['menge'] gesetzt werden.
Vielmehr entspricht nun eine Checkbox mit dem Wert 2 dem dritten Eintrag
im Array $_POST['menge']. Die dritte Checkbox bezieht sich auf Kartonart
2, genau so wie das dritte Eingabefeld (Schlüssel = 2).
Du musst also über die Werte der gewählten Kartonarten gehen und dann
die entsprechende Menge dazusuchen.
$bestellung = array();
foreach ( $_POST['kartonart'] as $i => $art ) {
// Bestellung wird nur berücksichtigt wenn zur Art auch eine Menge
angegeben wurde
if ( $_POST['menge'][$art] > 0 ) {
$bestellung[$art] = $_POST['menge'][$art];
}
}
Und die Einträge in $bestellung kannst du ja dann nach Belieben mit
foreach aufsummieren.
regards, Ringo
php::bar PHP Wiki - Listenarchive