Increment telt 2 op ipv 1

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Colin Rietdijk

Colin Rietdijk

12/02/2014 20:14:49
Quote Anchor link
Ik ben bezig met een allersimpelst webshop scriptje. Wanneer men op de bestelknop klikt dan wordt er 1 artikel in het mandje geplaatst. Wanneer ze nogmaals op bestel klikken, dan moet er 1 bij worden opgeteld. Echter, er gaat iets fout, want er worden elke keer 2 bij opgeteld.

Hier het script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch($action) {    //decide what to do

                case "add":
                    $_SESSION['cart'][$product_id]['quant']++;
                    break;

                case "remove":
                    $_SESSION['cart'][$product_id]['quant']--;
                    if ($_SESSION['cart'][$product_id]['quant'] == 0)             unset($_SESSION['cart'][$product_id]); //if the quantity is zero, remove it completely (using the 'unset' function) - otherwise is will show zero, then -1, -2 etc when the user keeps removing items.
                    break;

                case "empty":
                    unset($_SESSION['cart']); //unset the whole cart, i.e. empty the cart.
                    break;        }


De link waar men op klikt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<a class="button" href="webshop.php?action=add&product_id=<? echo $row->id; ?>">Bestel</a>


En om 1 van het artikel te verwijderen:

<a class="button" href="webshop.php?action=remove&product_id=<? echo $row->id; ?>">Bestel</a>


En dan nog een linkje voor het leeggooien van de winkelwagen, de empty, maar dat spreekt voor zich.

Kunnen jullie mij vertellen wat er mis gaat?
 
PHP hulp

PHP hulp

05/11/2024 20:41:47
 
Frank Nietbelangrijk

Frank Nietbelangrijk

12/02/2014 20:54:22
Quote Anchor link
ik wed dat de switch twee keer wordt aangeroepen. Waarom kan ik uit dit gegeven stukje code niet opmaken.

In algemene zin adviseer ik om na webshop.php?action=add te directen naar webshop.php zodat de '?action=add' weer uit de URL balk verdwijnt. Je doet dat zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
header('Location: webshop.php');
?>


Doe dit voordat je aan je output begint.
Gewijzigd op 12/02/2014 20:54:56 door Frank Nietbelangrijk
 
Colin Rietdijk

Colin Rietdijk

12/02/2014 21:10:43
Quote Anchor link
Ik heb dit direct na de increment functie ingevoegd, maar het lijkt helemaal niets te doen. Na het toevoegen (van uiteraard 2x het artikel), blijf ik in de url de action en product_id zien. Ik heb ook al dubbelquotes gebruikt en een : na Location, ook dat werkt niet.

Ik heb ook al geprobeerd om via if statement te werken, dus geen switch functie.
if ($action == "add") { inrementfunctie... header enz. }

Ook dat verandert niets.
 
Colin Rietdijk

Colin Rietdijk

14/02/2014 22:04:48
Quote Anchor link
Ik heb uiteindelijk het script omgebouwd en stuur de info via form post door. Nu doet hij het wel :S
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.