Autor Zpráva
Patrik C.
Profil *
Zdravím,

dělám košík v Session, už mám vše vyřešné kromě jedné věci. Do košíku přidávám ID produktu z databáze a počet kusů.

 $_SESSION["kosik"][intval($_POST["add"])] = intval($_POST["pocet"]); 


Akorát nemůžu přijít na to jak k tomu přidat ještě jednu položku (velikost). Poradil by někdo ? Díky
Segi_L
Profil
$kosik['pocet'] = intval($_POST["pocet"]);
$kosik['velikost'] = 'nejaka hodnota';

$_SESSION["kosik"][intval($_POST["add"])] = $kosik;
panther
Profil
Patrik C.:
můžeš držet košík třeba v tomto formátu (příklad pro 3 položky):

$_SESSION['kosik'][0] = array ('id' => 1, 'count' => 2);
$_SESSION['kosik'][1] = array ('id' => 45, 'count' => 13);
$_SESSION['kosik'][2] = array ('id' => 23, 'count' => 1);
Karel8
Profil *
Oživuju toto vlákno, protože řeším stejný problém. Řešení od Segi_L i panther však mají IMHO jednu vadu. Co když si chce zákazník koupit od jednoho druhu zboží dvě velikosti zároveň? Předpokládám, že v $_POST["add"]) je id produktu. Pak by se v session udržela pouze poslední hodnota... Jak z toho ven? :-)
Tori
Profil
Karel8:
pantherovo řešení to umožňuje bez problémů:
$_SESSION['kosik'][0] = array ('id' => 1, 'count' => 2, 'size' => 38);
$_SESSION['kosik'][1] = array ('id' => 1, 'count' => 1, 'size' => 40);
$_SESSION['kosik'][2] = array ('id' => 23, 'count' => 1);
Při odstraňování položky z košíku nebo změně kusů se pak musí hledat podle ID i velikosti.
Bertram
Profil
Domnívám se, že pantherovo řešení bys měl chápat takto.
  $_SESSION['kosik'][0] = array ('id' => 1, 'pocet' => 3);
  $_SESSION['kosik'][1] = array ('id' => 12, 'pocet' => 1);
  $_SESSION['kosik'][2] = array ('id' => 50, 'pocet' => 4, 'velikost' => 'L');
  $_SESSION['kosik'][3] = array ('id' => 50, 'pocet' => 3, 'velikost' => 'XL');


Kde ['kosik'][0], ['kosik'][1] atd jsou pouze pořadové hodnoty v košíku, nikoli identifikátory produktu v db
Karel8
Profil *
Máte pravdu, to jsem přehlédl, omlouvám se.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0