Op pagina product laten zien of deze geselecteerd is of dat je kan selecteren!
Ik ben bezig met een pagina waar je het product op je verlanglijstje kan zetten. Als je dit hebt gedaan dan zou je moeten zien "geselecteerd" en anders "toevoegen aan selectie". Nu kan je dus meerdere producten selecteren voor je verlanglijst. Als ik dat dus heb gedaan bijv. 4 producten en ik ga naar een product pagina dan krijgen ik meerdere keren toevoegen aan selectie of geselecteerd. Ik wil graag dat je het alleen voor dit product ziet op de pagina.
Hij laat dus nu van alle geselecteerde producten zien. Hoe kan ik dat oplossen alleen voor dit product?
Hij laat dus nu van alle geselecteerde producten zien. Hoe kan ik dat oplossen alleen voor dit product?
Code (php)
Gewijzigd op 24/10/2018 09:59:56 door Kees Mulder
Hier hebben we code-tags.
Hoe ziet je $_SESSION['winkelwagen'] eruit?
Hoe ziet je $_SESSION['winkelwagen'] eruit?
Dit is de session:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
session_start();
$sessionid = session_id();
if ( !isset($_SESSION['winkelwagen']) || !is_array($_SESSION['winkelwagen']) )
{
$_SESSION['winkelwagen'] = array();
}
// Toevoegen
if ( isset($_POST['verzenden'] ) && preg_match('^[1-9][0-9]*$^', $_POST['aantal']))
{
$_SESSION['winkelwagen'][$_POST['itemid']]= $_POST['aantal'];
}
[/code]
session_start();
$sessionid = session_id();
if ( !isset($_SESSION['winkelwagen']) || !is_array($_SESSION['winkelwagen']) )
{
$_SESSION['winkelwagen'] = array();
}
// Toevoegen
if ( isset($_POST['verzenden'] ) && preg_match('^[1-9][0-9]*$^', $_POST['aantal']))
{
$_SESSION['winkelwagen'][$_POST['itemid']]= $_POST['aantal'];
}
[/code]
En heb je al met print_r() de inhoud van $_SESSION['winkelwagen'] bekeken?
Dan moet inderdaad opvallen wat er in $key zit. Ook moet je even kijken of $row['product_id'] de juiste waarde bevat.
Even debuggen dus, als de waardes niet overeenkomen.
Dan moet inderdaad opvallen wat er in $key zit. Ook moet je even kijken of $row['product_id'] de juiste waarde bevat.
Even debuggen dus, als de waardes niet overeenkomen.
En ik neem aan dat je met die regex wilt controleren of "aantal" een positief getal is? Je gebruikt nu "^" als delimiter (en dus niet als "begin van zin"), dus "abc123" voldoet ook aan deze regex. Gebruik
Je doorloopt $_SESSION['winkelwagen']. Dan is het vrij natuurlijk dat je enkel geselecteerde producten detecteert :).
Wat je zou moeten doen is controleren of een product-key voorkomt in $_SESSION['winkelwagen']. Dit kun je doen voor een lijst van willekeurige producten of een enkel product. Dus zoiets:
Waarbij $het_product_id_waarin_je_geinteresseerd_bent dus een enkel id bevat, of uit een foreach-loop komt.
Wat je zou moeten doen is controleren of een product-key voorkomt in $_SESSION['winkelwagen']. Dit kun je doen voor een lijst van willekeurige producten of een enkel product. Dus zoiets:
Code (php)
Waarbij $het_product_id_waarin_je_geinteresseerd_bent dus een enkel id bevat, of uit een foreach-loop komt.




