Ik ben bezig met het bouwen van een simpel kassasysteem.
Als winkeleigenaar kan ik met een formulier een product, het aantal en de prijs toevoegen aan het winkelwagentje. Vervolgens wil ik een overzicht van het winkelwagentje tonen, voordat deze wordt opgeslagen in de database. Ik wil hiervoor gebruik maken van sessies.

Nu heb ik het volgende:


<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
  // Add article to cart
  $_SESSION["cart"][]["product"] = $_POST["stall"];
  $_SESSION["cart"][]["description"] = $_POST["description"];
  $_SESSION["cart"][]["quantity"] = $_POST["quantity"];
  $_SESSION["cart"][]["price"] = $_POST["price"];

  header("location: index.php");
}
?>


Wanneer ik de producten wil tonen, komt alles op een nieuwe regel te staan.
In de eerst regel het product, de tweede regel de omschrijving, de derde het aantal, de vierde regel de prijs en zo verder. Ik wil juist per regel een product tonen, met daarrachter de omschrijving, het aantal en de prijs.


<?php foreach($_SESSION["cart"] AS $row) { ?>
  <tr>
    <td><?php echo $row["product"]; ?></td>
    <td><?php echo $row["description"]; ?></td>
    <td><?php echo $row["quantity"]; ?></td>
    <td><?php echo $row["price"]; ?></td>
  </tr>
<?php } ?>


Iemand een idee wat ik fout doe?
Zet dit eens bovenin je script:
<?php
# error reporting
ini_set('display_errors', 1);
error_reporting(E_ALL);

?>
Die link doet niks, blijft verbinden zonder resultaat.
Bij mij wel hoor ;)
Als je producten toevoegd, dan zie je rechts wat er mis gaat.
In het bovenste stukje code staat vier keer een [] waardoor er vier nieuwe elementen (rijen) aan de array $_SESSION["cart"] worden toegevoegd in plaats van één nieuwe rij. Wat je wilt is één rij aan de cart toevoegen, en die ene rij bestaat uit een array met de elementen product, description, quantity en price.
Zo zou het wel moeten werken:

<?php
if($_SERVER["REQUEST_METHOD"] == "POST")
{
// Add article to cart
$_SESSION["cart"][] = array(
"product" => $_POST["stall"],
"description" => $_POST["description"],
"quantity" => $_POST["quantity"],
"price" => $_POST["price"],
);
header("location: index.php");
}
?>
Thanks! Dat was de oplossing :)

Reageren