phpbar.de logo

Mailinglisten-Archive

[php] Summe des Formulars berechnen

[php] Summe des Formulars berechnen

Ringo Großer swek at gmx.net
Die Apr 10 16:48:44 CEST 2007


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