Nieuw lid |
|
Hallo,
Bij het opzetten van een winkelmandje ben ik tegen een probleem aangelopen.
Het updatescript werkt niet.
Als er 1 product in de winkelmand staat, wordt, bij een aangepast aantal, het aantal netjes aangepast.
Echter, als er meerdere producten in het winkelmandje staan, werkt het updatescript alleen voor het laatste product.
<?php
// update_cart.php
session_start();
// Eenzijdig, maar kijken of die bestaat
if (empty($_SESSION['cart']))
{
// Nee dus, terugsturen!
header("Location: index.php");
}
else
{
// Exploden
$cart = explode("|",$_SESSION['cart']);
// Tellen
$count = count($cart);
// Alle producten langslopen
foreach($cart as $products)
{
// Split
/*
$product[x] -->
x == 0 -> product id
x == 1 -> hoeveelheid
*/
$product = explode(",",$products);
$postedProduct = $_POST['productnummer']; // Deze twee om later de geposte waarde te 'spoofen'
$postedQuantity = $_POST['hoeveelheid'];
if ($product[0] == $postedProduct) // hier dus
{
// Update pro
$inNewCart = $product[0].",".$postedQuantity;
$newCart = $newCart."|".$inNewCart;
}
else
{
$inNewCart = $product[0].",".$product[1];
$newCart = $newCart."|".$inNewCart;
}
}
// En weer die luiheid, dus die eerste | eraf...
$newCart = substr($newCart,1);
// Oude winkelwagen weg, nieuwe terug
session_unset($_SESSION['cart']);
$_SESSION['cart'] = $newCart;
// En weer terugsturen
header("Location: cart.php");
}
?>
<?php // update_cart.php // Eenzijdig, maar kijken of die bestaat if (empty($_SESSION['cart'])) { // Nee dus, terugsturen! header("Location: index.php"); } else { // Exploden $cart = explode("|",$_SESSION['cart']); // Tellen // Alle producten langslopen foreach($cart as $products) { // Split /* $product[x] --> x == 0 -> product id x == 1 -> hoeveelheid */ $postedProduct = $_POST['productnummer']; // Deze twee om later de geposte waarde te 'spoofen' $postedQuantity = $_POST['hoeveelheid']; if ($product[0] == $postedProduct) // hier dus { // Update pro $inNewCart = $product[0].",".$postedQuantity; $newCart = $newCart."|".$inNewCart; } else { $inNewCart = $product[0].",".$product[1]; $newCart = $newCart."|".$inNewCart; } } // En weer die luiheid, dus die eerste | eraf... $newCart = substr($newCart,1); // Oude winkelwagen weg, nieuwe terug $_SESSION['cart'] = $newCart; // En weer terugsturen } ?>
Heeft iemand een idee wat er fout gaat?
Met vriendelijke groet,
Ruben
|