Avatar billede nicker Nybegynder
27. maj 2007 - 15:56 Der er 1 kommentar og
1 løsning

Indkøbskurv og sessions

Hej

Jeg har en shop med tilhørende indkøbskurv, og den fungerer også meget godt. Nu vil jeg bare gerne udvide den, så man kan man størrelse og antal. Det er allerede nu muligt at vælge antal, men først når man er inde i selve kurven.

Når man viser varen er det følgende variabler som også skal gemmes i sessionen:

print "Størrelse: <select size='1' name='str' class='forminput'>";
if($shop_varer[size1] != 0) { print "<option selected='selected'>X-Small</option>"; }
if($shop_varer[size2] != 0) { print "<option>Small</option>"; }
if($shop_varer[size3] != 0) { print "<option>Medium</option>"; }
if($shop_varer[size4] != 0) { print "<option>Large</option>"; }
if($shop_varer[size5] != 0) { print "<option>X-Large</option>"; }
if($shop_varer[size6] != 0) { print "<option>XX-Large</option>"; }
print "</select> Antal: <input type='text' name='antal' size='2' class='forminput'>";

Min indkøbskurv/session kode ser sådan her ud:

$cart = $_SESSION['cart'];
$action = $_GET['action'];
switch ($action) {
    case 'add':
        if ($cart) {
            $cart .= ','.$_GET['id'];
        } else {
            $cart = $_GET['id'];
        }
        break;
    case 'delete':
        if ($cart) {
            $items = explode(',',$cart);
            $newcart = '';
            foreach ($items as $item) {
                if ($_GET['id'] != $item) {
                    if ($newcart != '') {
                        $newcart .= ','.$item;
                    } else {
                        $newcart = $item;
                    }
                }
            }
            $cart = $newcart;
        }
        break;
    case 'update':
    if ($cart) {
        $newcart = '';
        foreach ($_POST as $key=>$value) {
            if (stristr($key,'qty')) {
                $id = str_replace('qty','',$key);
                $items = ($newcart != '') ? explode(',',$newcart) : explode(',',$cart);
                $newcart = '';
                foreach ($items as $item) {
                    if ($id != $item) {
                        if ($newcart != '') {
                            $newcart .= ','.$item;
                        } else {
                            $newcart = $item;
                        }
                    }
                }
                for ($i=1;$i<=$value;$i++) {
                    if ($newcart != '') {
                        $newcart .= ','.$id;
                    } else {
                        $newcart = $id;
                    }
                }
            }
        }
    }
    $cart = $newcart;
    break;
}
$_SESSION['cart'] = $cart;

her er det link jeg bruger til at lægge en vare i indkøbskurven:
print "<a href='add.php?action=add&id=$shop_varer[id]&kategori=$_GET[kategori]'>Læg i kurv</a>";



Hvordan skal koden se ud når den også skal gemme size og antal når man trykker læg i indkøbskurv?
Avatar billede nicker Nybegynder
29. maj 2007 - 01:00 #1
Hej igen

Er villig til at betale 200 kr. for en der kan komme med en løsning der kan bruges.
Avatar billede nicker Nybegynder
12. juni 2007 - 00:08 #2
luk
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