Avatar billede Slettet bruger
19. november 2004 - 14:58 Der er 8 kommentarer og
1 løsning

Session som indkøbskurv i shop

Jeg er i færd med at opbygge en shop til min hjemmeside.
I den forbindelse skal der selvfølgelig være en indkøbskurv. Der skal naturligvis også være mulighed for at lægge flere eller færre varer i kurven, hvilket jeg har valgt at gøre ved at brugeren trykker på nogle plus eller minus knapper i indkøbskurven.

Mit problem er at når jeg lægger en vare til antallet som er i sessionen bliver der oprettet en "ny vare" i indkøbskurven uden vare ID og med 1 som antal.

Min session til indkøbskurven er opbygget således:
    [basket] => Array
        (
            [0] => Array
                (
                    [0] => 4
                    [1] => 1
                )

        )
4 er vareid og 1 er antallet, altså $_SESSION[basket][0][0] er vare id og $_SESSION[basket[0][1] er antal.

Når jeg vil lægge en ekstra vare i kurven gør jeg således:
$_SESSION[basket][$_GET[sessnr]][1]++;
hvor $_GET[sessnr] er "nummeret" som den vare har i sessionen, altså et heltal >= 0, i det her tilfælde 0.
Avatar billede erikjacobsen Ekspert
19. november 2004 - 15:05 #1
Du skal først finde det sted hvor $_SESSION[basket][$i][0]==$_GET['sessnr'], og så
$_SESSION[basket][$i][1]++;
Avatar billede Slettet bruger
19. november 2004 - 15:07 #2
altså bare gennem en for løkke af $_SESSION[basket] eller hvorledes?
Avatar billede erikjacobsen Ekspert
19. november 2004 - 15:07 #3
....eller også misforstår jeg dig ;)

Nummeret er ikke varenummeret, men placeringen i din tabel. Men da $_GET['sessnr']
er en streng, og ikke en int skal du

$_SESSION[basket][(int)$_GET[sessnr]][1]++;
Avatar billede Slettet bruger
19. november 2004 - 15:09 #4
hehe lidt java agtigt. Troede jeg sgu ikke man kunne i PHP :)
Avatar billede Slettet bruger
19. november 2004 - 15:10 #5
Wow erik det virker sgu :)
Smider du svar eller skal jeg gå ud fra at du ikke har ændret vaner :P
Avatar billede erikjacobsen Ekspert
19. november 2004 - 15:11 #6
Jo, PHP er sådan lidt typeløst med typer ;)
Jeg ændrer ikke vaner. Du er velkommen til at spise pointene selv.
Avatar billede Slettet bruger
19. november 2004 - 15:15 #7
Hmm der er sgu alligevel lidt problemer.
Hvis der er to varer i kurven kan den kun lægge flere til den første. Hvis man lægger til den nederste lægger den bare en til den øverste. Min session ser således ud og koden er den som du anviste, hvad kan der være galt?

Array
(
    [basket] => Array
        (
            [0] => Array
                (
                    [0] => 4
                    [1] => 3
                )

            [1] => Array
                (
                    [0] => 6
                    [1] => 1
                )

        )

)
Avatar billede erikjacobsen Ekspert
19. november 2004 - 15:15 #8
$_GET[sessnr] kan være tom?
Avatar billede Slettet bruger
19. november 2004 - 16:13 #9
Tak for hjælpen. Det virker perfekt nu! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester