Controleren of product al in winkelwagen zit

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pim B

Pim B

15/12/2010 02:07:32
Quote Anchor link
Hoi,

Ik heb een bestelpagina gemaakt waar bezoekers producten kunnen toevoegen aan een winkelwagen. Dmv de querystring worden producten in de winkelwagen geplaatst. Werkt allemaal goed. Maar nu wil ik het zo maken dat een product niet 2 keer in de winkelwagen kan worden gedaan. Hij moet dus controleren of het product al in de winkelwagen zit. En dat lukt dus niet. :(

$winkelwagen is een array. $_GET['bestel'] is de querystring die producten aan de array toevoegt.
Hier wordt het product aan de winkelwagen toegevoegd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if (isset($_GET['bestel']))
  {

     $winkelwagen[] = $_GET['bestel'];
  }

?>

Nu moet ik dus ergens een controle inbouwen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// Lus om door de array te lopen
for($i=0; $i<count($winkelwagen); $i++)
  {

    $winkelwagen[$i]...?
  }

// Controleer of product al in de winkelwagen zit
if($winkelwagen[$i] != $_GET['bestel'])
  {

     $winkelwagen[] = $_GET['bestel'];
  }

?>

De if ziet er juist uit. Maar ik moet 'm uitvoeren voor elke $winkelwagen[$i]. Vandaar die for-loop. Nu moet ik (volgens mij) de if-statement in de lus zetten zodat hij voor alle producten controleert of ze er inzitten. Maar dan voegt hij de producten juist vaker toe (ook wel logisch want het staat in een lus).
Hoe pak ik dit aan?
Gewijzigd op 15/12/2010 02:08:34 door Pim B
 
PHP hulp

PHP hulp

28/01/2022 11:49:05
 
Ozzie PHP

Ozzie PHP

15/12/2010 09:12:25
Quote Anchor link
Dit kun je doen door een foreach loop te gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$product_zit_in_winkelwagen
= false;
foreach ($winkelwagen as $product) {
  if ($product == $_GET['bestel']) {
    $product_zit_in_winkelwagen = true;  
    continue;
  }
}

if (!$product_zit_in_winkelwagen) $winkelwagen[] = $_GET['bestel'];
?>


Ik weet overigens niet hoe jouw winkelwagen werkt, maar ik kan me voorstellen dat als een product al in de winkelwagen zit je wel het aantal met 1 wilt ophogen, maar dat laat ik aan jou over.
Gewijzigd op 15/12/2010 09:16:35 door Ozzie PHP
 
Pim B

Pim B

15/12/2010 12:58:12
Quote Anchor link
Ja fantastisch, dankjewel.
In de winkelwagen zelf kan het aantal per product inderdaad opgehoogd worden. Maar dat is de volgende stap. Ik wou eerst dit oplossen.
 



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.