Moderator |
|
Dit zal best op te lossen zijn, maar ik zou een andere aanpak kiezen.
Je product_id identificeert uniek een product lijkt mij zo?
Waarom maak je geen mapping product_id => aantal? Dan wordt je code stukken simpeler lijkt mij.
In je formulier kun je iets soortgelijks uithalen voor $_POST, maak gebruik van "POST arrays":
Formulier:
Product 25: <input type="text" name="product_quantity[25]" value="5" /> stuks.[+/-/verwijder knop hier]
Product 25: <input type="text" name="product_quantity[25]" value="5" /> stuks.[+/-/verwijder knop hier]
Code voor verwerken (hierbij ga ik er vanuit dat product_quantity totalen bevat, geen verschillen):
<?php
// ...
// nieuwe producten/hoeveelheden toegevoegd?
if (isset($_POST['product_quantity'])) {
foreach ($_POST['product_quantity'] as $product_key => $amount) {
// wat extra controles hier, bestaand product, numerieke hoeveelheid,
// misschien voorraad controleren om te zien of je genoeg hebt voor de aanschaf?
// gewoon naar $_SESSION kopieren...
$_SESSION['basket'][$product_key] = $amount;
}
}
// ...
?>
<?php // ... // nieuwe producten/hoeveelheden toegevoegd? if (isset($_POST['product_quantity'])) { foreach ($_POST['product_quantity'] as $product_key => $amount) { // wat extra controles hier, bestaand product, numerieke hoeveelheid, // misschien voorraad controleren om te zien of je genoeg hebt voor de aanschaf? // gewoon naar $_SESSION kopieren... $_SESSION['basket'][$product_key] = $amount; } } // ... ?>
Keep it simple... |