Hoi,

Ik heb nog even een vraagje: Via een form die naar dezelfde pagina wordt gepost dmv checkboxes wordt er een waarde in een array geschoten. En nu wil ik dat wanneer je hetzelfde checkboxjes klikt er niks gebeurd. En wanneer je een nieuwe klikt deze gewoon wordt toegevoegd.

Dit is waar ik nu ben maar niet werkt:
<?php
if ($_POST['besteldeproducten']) {
$besteldeproducten = $_POST['besteldeproducten'];

if (!isset($_SESSION['besteldeproducten'])) {
$_SESSION['besteldeproducten'] = $_POST['besteldeproducten'];
}
else {
$id=0;
$aantal=count($_SESSION['besteldeproducten']);
for ($i=1; $i <= $aantal; $i++) {
if (isset($_POST['besteldeproducten'][$id])) {
//niks
}
else {
$_SESSION['besteldeproducten'][$id] = $besteldeproducten[$id];
}
$id++;
}
}
}
?>


Wat wel werkt maar de array telkens reset wanneer je een checkbox post is:

<?php
if ($_POST['besteldeproducten']) {
$_SESSION['besteldeproducten'] = $_POST['besteldeproducten'];
$aantal=count($_SESSION['besteldeproducten']);

$id=0;
unset($_SESSION['quantity']);
for ($i=1; $i <= $aantal; $i++) {
$_SESSION['quantity'][$id] = 1;
$id++;
}
}
?>

Iemand die mij hiermee kan helpen?

Enorm bedankt alvast,

Nigel Dokter
Ik heb geen idee wat je bedoelt.
Maar misschien heb je hier wat aan?
Ik zal er zo nog even naar kijken maar het lijkt er niet op dat, die link bevat wat ik zoek.

Om mijn probleempje nog maar even te omschrijven:
Het gaat om een winkelwagentje met producten. In dit geval heeft deze ene array slechts 1 waarde per regel namelijk het product nummer.
Wanneer je aanvinkt welke producten je wilt hebben worden ze toegevoegd aan de array dmv een value die ik uit mijn database haal.
De array ziet er bij 3 producten bijvoorbeeld zo uit.
Array ( [0] => h1001 [3] => n1004 )
Dat de 2e waarde 3 mee krijgt is omdat die het 4e product is. De array wordt op dit moment nog helemaal gereset dmv:
if ($_POST['besteldeproducten']) {
$_SESSION['besteldeproducten'] = $_POST['besteldeproducten'];

En ik wil graag, dat wanneer ik besluit nog een product toe te voegen die ik er nog niet in heb. Deze erbij komt en niet dat de hele array weer reset met alleen de laatste waarde.

Ik ben er zelf al behoorlijk lang mee bezig en mijn laatste poging (zie bovenste code) lijkt al het meest in de richting te zitten van wat het zou moeten zijn, maar het werkt niet :(

Bedankt voor je reactie trouwens.
Dus reset je SESSION array gewoon niet:

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
foreach ($_POST as $product) {
array_push ($_SESSION['producten'], $product);
}
}
?>
Bedankt! Ik ga met foreach bezig. Ik laat nog weten als ik er niet uit kom.
Het is gelukt :)!

Moest er nog een kleine check aan toevoegen zodat er geen dubbele in konden komen. Zat eerst zelf flink te knoeien en toen kwam ik in_array tegen:

<?php
foreach ($_POST as $product) {
if (!in_array($product, $_SESSION['besteldeproducten'])) {
array_push ($_SESSION['besteldeproducten'], $product);
}
}
?>

Bedankt voor de hulp
Je zou nog iets verder kunnen gaan en met aantallen werken. Dan krijg je een array als:
<?php
$_SESSION['besteldeproducten']['product x'][3];
?>
Op die manier kunnen mensen meer dan één product bestellen, of de aantallen aanpassen.

Reageren