Avatar billede Hans1 Praktikant
21. november 2010 - 19:13 Der er 23 kommentarer og
1 løsning

Tilføjning af flere vare til webshop

Hej eksperter!

Har et lille problem med en kode til en webshop.
Koden her er til at tilføje en vare til kurven via php session.
Men jeg kunne godt tænkte mig at få en funktion på koden så man også kan tilføje flere antal af samme vare med kun et klink af det man har angivet i et tekstfelt når man trykker på linket.

her er linket domæne.dk/?basket=add&id=1

Så ville jeg gerne kunne tilføje flere antal ved at tilføje dette: domæne.dk/?basket=add&id=1&antal=3

Så den tilføjede 3 vare.

Følgende kode her adskiller hver tilføjede vare med et komma.
fx. 1,2 (her er der tilføjet vare id 1 + 2=

Hvis der er tilføjet flere af samme vare gør den sådan her hvis man altså klikker på tilføj til kurv flere gange:
1,1,2


<?
$basket = $_GET['basket'];
switch ($basket) {
    case 'add':
        if ($cart) {
            $cart .= ','.$_GET['id'];
        } else {
            $cart = $_GET['id'];
        }
        break;
$_SESSION['cart'] = $cart;
}
?>
Avatar billede majbom Novice
21. november 2010 - 22:46 #1
prøv med:

<?php
$basket = $_GET['basket'];
$amount = $_GET['antal'];
switch ($basket) {
    case 'add':
        $add = "";
        if($amount>1){
          $first = true;
          for($i=0;$i<=$amount;i++){
              if(!$first){
                $add .= ','.$_GET['id'];
              }else{
                $add .= $_GET['id'];
                $first = false;
              }
          }
        }else{
          $add = $_GET['id']:
        if ($cart) {
            $cart .= ','.$add;
        } else {
            $cart = $add;
        }
        break;
$_SESSION['cart'] = $cart;
}
?>
Avatar billede majbom Novice
21. november 2010 - 22:46 #2
kan helt sikkert gøres simplere, men den må du selv klare :)
Avatar billede Hans1 Praktikant
22. november 2010 - 10:41 #3
hmm får fejl 500
Avatar billede Hans1 Praktikant
22. november 2010 - 22:44 #4
Jeg tror at der er en fejl i koden
Avatar billede majbom Novice
22. november 2010 - 23:01 #5
ja, der mangler i hvert fald et $-tegn her:

for($i=0;$i<=$amount;i++){

skal være:

for($i=0;$i<=$amount;$i++){
Avatar billede Hans1 Praktikant
22. november 2010 - 23:10 #6
Den viser stadig fejl.
Har du prøvet at teste den?
Avatar billede majbom Novice
22. november 2010 - 23:36 #7
$add = $_GET['id']:

skal self være:

$add = $_GET['id'];

du må gerne selv kigge på koden ;)
Avatar billede majbom Novice
22. november 2010 - 23:38 #8
og så mangler der en } efter samme linje...
Avatar billede Hans1 Praktikant
23. november 2010 - 17:22 #9
Hej igen... nu udskriver den ingen fejl dog viser den ikke nogen tal i sessionen. Det gør den dog med denne kode hvor jeg har taget lidt fra din kode men nu er problemet at den udskriver en ekstra ud over det som er angivet ved antal=

Jeg er sikker på at løsningen er i din kode.
men kan ikke lige se hvilen del.

<?
session_start();
$cart = $_SESSION['cart'];
$basket = $_GET['basket'];
$amount = $_GET['antal'];

switch ($basket) {
case 'add':
       
if ($cart) {

for($i=0;$i<=$amount;$i++){
$cart .= ','.$_GET['id'];
       
}
} else {

$cart = $_GET['id'];

}
break;
}

$_SESSION['cart'] = $cart;
?>
Avatar billede Hans1 Praktikant
23. november 2010 - 17:34 #10
Smid et svar det ser ud til at virke nu :)

Skrev 1 i stedet for 0 ved $i=0
samt tilføjede:

for($i=0;$i<=$amount;$i++){


efter else

Tusinde tak for "for" funktionen
Avatar billede majbom Novice
23. november 2010 - 21:05 #11
godt du fik det til at virke og også lidt simplere som jeg skrev :)
Avatar billede majbom Novice
24. november 2010 - 09:18 #12
tfp :)
Avatar billede Hans1 Praktikant
24. november 2010 - 11:48 #13
Hey igen splazz
Hvad gør man hvis man vil have gemt en ny cookie med farve på produktet i en ny session fx. sort, blå og grøn
så det passer med id numrene i samme rækkefølge.

sådan her:
1,1,2,3 (php sessionen cart)
sort,sort,blå,grøn (php sessionen color)

kan jeg også gøre det med for funktionen?
for($i=0;$i<=$amount;$i++)
Avatar billede majbom Novice
24. november 2010 - 14:56 #14
ny session, ny cookie?

skal det gemmes i en ny session, ellers også i en cookie?
Avatar billede Hans1 Praktikant
24. november 2010 - 16:21 #15
Sry roder det sammen det skal kun være session :)
Avatar billede majbom Novice
24. november 2010 - 18:34 #16
og hvad vil du så? du har det jo allerede i din session?
Avatar billede Hans1 Praktikant
24. november 2010 - 19:27 #17
Har kun antal i min session ikke farven på produktet.
så man ved at tilføje produkt kan gøre sådan her:
basket=add&id=1%antal=2&farve=gul

så der i en anden session er gemt farven.
gul,gul og i cart sessionen 1,1
Avatar billede majbom Novice
24. november 2010 - 19:36 #18
nååh på den måde, ja de vil du kunne gøre på samme måde...
Avatar billede Hans1 Praktikant
25. november 2010 - 17:39 #19
Hvordan retter jeg din kode så man kan tilføje flere produkter hver gang man går ind på linket så den udskriver: 1,1
Hvis jeg har trykket på linket 2 gange med antal 1.

Og ikke kun: 1
hvis jeg trykker på den to gange ligesom din kode gør det.
Det var sådan jeg havde tænkt mig det :)
Avatar billede majbom Novice
25. november 2010 - 18:37 #20
jeg er ikke helt med - kan du forklare det på en anden måde? :)
Avatar billede Hans1 Praktikant
25. november 2010 - 19:06 #21
Din kode rydder det gamle antal produkter som man har tilføjet.
Så hvis man skal tilføje 10 skal man vælge antal 10 på en gang.

Jeg tænker på at hvis man nu nu vil tilføje 10 produkter i kurven skal man fx først kunne tilføje 5 og så tilføje 5 ydeligere lidt senere så længe browseren er åben.
Avatar billede majbom Novice
26. november 2010 - 09:53 #22
hmm, kan du ikke prøve at smide den kode du bruger?
Avatar billede Hans1 Praktikant
26. november 2010 - 11:18 #23
Okay her er den kode som gør det som jeg snakker om.
Men når jeg tilføjer 5 ved antal i linier så tilføjer den kun 1.
Men når jeg så har tilføjet en så kan jeg godt tilføje flere ved antal.

<?
session_start();
$cart = $_SESSION['cart'];
$basket = $_GET['basket'];
$amount = $_GET['antal'];

switch ($basket) {
case 'add':
       
if ($cart) {

for($i=1;$i<=$amount;$i++){
$cart .= ','.$_GET['id'];
       
}
} else {

for($i=1;$i<=$amount;$i++){
$cart = $_GET['id'];

} }
break;
}

$_SESSION['cart'] = $cart;
?>
Avatar billede Hans1 Praktikant
29. november 2010 - 15:15 #24
Ved du hvad der skal til?
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