Op pagina product laten zien of deze geselecteerd is of dat je kan selecteren!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Innovatieve, nauwkeurige Senior PHP Developer voor

Eind jaren ’90 is dit bedrijf opgericht. Ze hebben zich altijd beziggehouden met het ontwikkelen van software voor overheidsinstanties. Dit zijn instanties waaronder bijvoorbeeld ook onder andere : de belastingdienst, burgerszaken, verschillende bedrijven, notarissen, incassobureau’s en ook nog bewindvoerders. Momenteel tellen ze 20 medewerkers, waarvan 2/3 deel allemaal developers zijn. Doordat ze de enigste aanbieder van dit soort software op de markt zijn, groeien ze erg hard. Door de enorme groei, hebben ze dan ook concrete groeiplannen in het verschiet. Functie-omschrijving Het bedrijf wordt door allerlei instanties ingeschakeld. Tegenwoordig wordt alles digitaal geregeld en gezien de essentie van dit soort

Bekijk vacature »

Kees Mulder

Kees Mulder

24/10/2018 09:42:49
Quote Anchor link
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?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
                foreach ( $_SESSION['winkelwagen'] as $key=>$val ) {
                if($key == $row['product_id'])
                {

                    echo 'geselecteerd';
                }

                else
                {
                    echo 'toevoegen aan selectie';
                }
                }

                ?>

Gewijzigd op 24/10/2018 09:59:56 door Kees Mulder
 
PHP hulp

PHP hulp

16/01/2019 03:48:56
 
- Ariën -
Beheerder

- Ariën -

24/10/2018 09:45:46
Quote Anchor link
Hier hebben we code-tags.
Hoe ziet je $_SESSION['winkelwagen'] eruit?
 
Kees Mulder

Kees Mulder

24/10/2018 09:59:06
Quote Anchor link
Dit is de session:

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
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]
 
- Ariën -
Beheerder

- Ariën -

24/10/2018 10:40:57
Quote Anchor link
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.
 
Rob Doemaarwat

Rob Doemaarwat

24/10/2018 11:28:03
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
preg_match('/^[1-9][0-9]*$/', $_POST['aantal'])
 
Thomas van den Heuvel

Thomas van den Heuvel

24/10/2018 15:23:43
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if (isset($_SESSION['winkelwagen'][$het_product_id_waarin_je_geinteresseerd_bent])) {
    echo 'product aanwezig';
}
else {
    echo 'product niet aanwezig';
}

?>

Waarbij $het_product_id_waarin_je_geinteresseerd_bent dus een enkel id bevat, of uit een foreach-loop komt.
 



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.