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

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer / Innovatieve software / Virtual Re

Functieomschrijving Als .Net developer werken aan innovatieve software waar onder andere gebruik gemaakt wordt van Virtual Reality? Bijdragen aan een organisatie waar je uitgedaagd wordt om continu verbeteringen en ontwikkelpunten te ontdekken en door te voeren? Werken in de omgeving Putten? Reageer dan nu voor meer informatie! Het pro-actief aandragen van verbeteringen voor de bestaande applicatie; Ontwikkelen van nieuwe functionaliteiten; Doorvoeren van aanpassingen en wijzigingen; Verantwoordelijk voor koppelingen met andere systemen; Op de hoogte blijven van technische ontwikkelingen. Functie-eisen Hbo werk- en denkniveau; Een afgeronde IT gerelateerde opleiding; Minimaal 1 jaar professionele ervaring als developer; Aantoonbare kennis van C#; Initiatiefrijke

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

22/11/2019 19:45:37
 
- 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.