Problem mit mehrdim. Array als Warenkorb

LapisInfernalis

Grünschnabel
Erst einmal ein "Hallo" an alle User von Tutorial.de! ;)

Ich habe folgendes Problem. Ich arbeite gerade an meinem ersten Webshop und bin gerade an der Realisierung des Warenkorb-Systems angelangt.

Für den Warenkorb möchte ich ein mehrdimensionales Array benutzen, doch irgendwie hapert es bei der Zuordnung der Daten aus dem Formular, mit welchem das Produkt in den Warenkorb "gegelegt" werden soll... :(

Folgendes Formular liefert mir die Daten, die in den Warenkorb sollen:
PHP:
<form name="order" method="post" action="">
  <input type="hidden" name="item_id" value="<?php echo $item['item_id'] ?>" />
  <input type="hidden" name="item_name" value="<?php echo $item['item_name'] ?>" />
  <input type="hidden" name="item_points" value="<?php echo $item['item_points'] ?>" />
  <input type="hidden" name="item_cat_id" value="<?php echo $item['item_cat_id'] ?>" />
  <input type="hidden" name="item_scat_id" value="<?php echo $item['item_scat_id'] ?>" />
 Menge: <input name="qty" type="text" size="5" maxlength="5" <?php if (isset($_POST['submit_item'])) echo ("value=\"" . $_POST['qty'] . "\""); ?> />&nbsp;<input name="submit_item" type="submit" value="In den Warenkorb" />

Soweit, so gut...

Nun habe ich wie folgt versucht, diese Daten in ein mehrdimensionales Array zu packen:
PHP:
<?php
  $_SESSION['warenkorb']['item_id'] = array(
  	$_POST['item_id'] => array('item_name' => $_POST['item_name'],
 		 		 	 'item_points' => $_POST['item_points'],
 		 		 	 'item_qty' => $_POST['qty'] ));
  	
  	 
    header("Location: cart.php?cid=" . $_POST['item_cat_id'] . "&scid=" . $_POST['item_scat_id']);
  ?>

Auf der Seite cart.php sollte dann durch diese Codezeilen eine Ausgabe erfolgen:
PHP:
foreach ($_SESSION['warenkorb'] as $key => $value) 
  	{
  	 echo ("Artikel-Nr. " . $key['item_id'] . "<br/>\n");
  	 echo ("Artikel-Name: " . $value['item_name'] . "<br/>\n");
  	 echo ("Punkte: " . $value['item_points'] . "<br/>\n");	
  	 echo ("Bestellmenge: " . $value['item_qty'] . "<br/>\n");	
   }

Aber anstatt einer Ausgabe wie:

Artikel-Nr. 12345
Artikel-Name: Der_Name
Punkte: 25
Bestellmenge: 10


Erhalte ich:

Artikel-Nr. i
Artikel-Name:
Punkte:
Bestellmenge:



Was mache ich falsch...? :(

Vielen Dank für Eure Bemühungen im Voraus!

LapisInfernalis
 
Hallo zurück und welcome aboard:),

Du hast dich da in der Dimension geirrt... dein Array ist 3-Dimensional, in cart.php durchläufst du aber die 2. Dimension.
Diese enthält nur 1 Element...$_SESSION['warenkorb']['item_id']
so sollte es gehen:
Code:
foreach ($_SESSION['warenkorb']['item_id'] as $key => $value)
      {
       echo ("Artikel-Nr."   . $key                 . "<br/>\n");
       echo ("Artikel-Name:" . $value['item_name']  . "<br/>\n");
       echo ("Punkte: "      . $value['item_points']. "<br/>\n");    
       echo ("Bestellmenge:" . $value['item_qty']   . "<br/>\n");    
   }
.. wobei ich bei dem, was du an Code gepostet hast, nicht entnehmen kann, wozu die 2. Dimension dienen soll.... die könntest du dir eigentlich sparen.
 

Neue Beiträge

Zurück