Indkøbskurv og sessions
HejJeg 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?