Autor Zpráva
Tomasekkk
Profil *
Ahoj, chystám se udělat obyčejné objednávky několika desítek zboží (žádný velký eshop). Rád bych se zeptal, jak řešíte (kdo to již dělal) funkci košíku. Jedná se mi o to, že uživatel může v objednávkovém formuláři přejít ze stránky na stránku, případně upravovat počet kusů apod. Já si jen říkal, že bych to asi dělal tak, že bych po prvním přihlášení udělal nějaký unikátní kód (md5 + time) a ten zapsal automaticky do databáze, potom při objednávání apod. by se výrobky načítaly do databáze a to tak, že pod tímto unikátním ID v session. Pokud by jste někdo měl návod na to jak to nejlépe řešit nebo by jste chtěli upřesnit informace, určitě upřesním a budu rád. Tomáš
ShiraNai7
Profil
Řekl bych, že bohatě stačí sessions.
Tomasekkk
Profil *
No právě to jsem psal, jak bych to udělal, ale nevím ... třeba to někdo řeší jinak ... Než bych se do toho pustil, rád bych znal názory :-)
ShiraNai7
Profil
Myslím ukládat ID položek v košíku přímo do sessions. Dělat to složitou cestou přes databázi je zbytečné.
Tomasekkk
Profil *
Áha, to jsem právě chtěl vědět, ale nedokážu si právě teď představit jak udělat takto session, tak daleko jsem nedošel, umím do session ukládat určité "proměné", ale abych tak obsáhlé věci jako kód zboží, počet kusů apod. ukládal do session tak to bych si musel ještě hodně session nastudovat nebo dohledat někde nějaký příklad.
Tomasekkk
Profil *
Tak jsem sice už něco našel http://php.vrana.cz/nakupni-kosik.php, no zkusím dohledat i něco jiného.
ShiraNai7
Profil
Je to jen obyčejné pole.. priklad kodu co uklada ID polozky do kosiku (predpokladam, ze session uz je spustena):

if(!isset($_SESSION['kosik'])) $_SESSION['kosik'] = array();
$_SESSION['kosik'][] = $id;


A $_SESSION['kosik'] pak vypada treba takto:
array(
  123,
  456,
  984
)


Kdyz tam jsou nejake 3 polozky..
Tomasekkk
Profil *
Děkuju, vyzkouším to tedy nějak takto. Jediné o co mi ještě jde, že objednávka může být i tak, že na jedné stránce je vypsán celý seznam zboźí a vedle něj jen políčko na počet kusů, na konci formuláře je tlačítko objednat zboží, takže takto session asi k tomuto nevyužiju, leda, že bych u každého políčka (zboží) udělal tlačítko přidat do košíku.
ShiraNai7
Profil
Můžeš ukládat ID i počet kusů..

$_SESSION['kosik'][] = array($id, $pocet_kusu);
Tomasekkk
Profil *
Omlouvám se za mé připitomělé otázky, ale nechápu, když budu mít např. 40 řádků se seznamem zboží a u každého políčka input pro počet kusů, jak mám tedy udělat INPUT pro počet kusů abych vlastně prpojil formulářové políčka se session?

Ja osobně ke skrytým věcem používám

<form>
<input type="hidden" name="cislozbozi" value="125.05">
Nějaký název zboží<br>
<input type="text" name="pocetkusu">
</form>


Jenže nevím opravdu jak tyto formuláře, které patří k sobě "vložit" do session, aby se vědělo kdo jaké ID a počet kusů zadal.
xmark
Profil
Tomasekkk:
Buď budeš mít 40 formulářů a každý bude spolupracovat s jedním prvkem toho pole - přes ID, nebo budeš mít jeden formulář a pak ty inputy musíš nějak identifikovat. To ale není problém té session, ale čistě práce s formulářem.
Tomasekkk
Profil *
OK, to mě napadlo, zkusím se s tím nějak poprat :-)
Tomasekkk
Profil *
Tak jak dělám co dělám, nemůžu se k funkčnímu košíku dostat :-( Hledám i na strýčkovi googlu a tady v diskuzích, ale asi mi to nemyslí a nebo jsem se do toho tak zamotal, že i základní věci v PHP a formulářích nerozjedu :-(
joe
Profil
Lepší je ukládat košík do cookies, než do sessions, kód je prakticky stejný, jen místo $_SESSION dáš $_COOKIE
Tomasekkk
Profil *
Proto jsem tady založil toto fórum, vím, že cookie je lepší, že mu mohu nastavit i delší "životnost", jenže jak řešit to, že někdo nemá zapnuté cookies? Existuje toto stále? Vím, že kdysi se uživatelé báli cookies a vždy mi nebylo doporučováno něco přes cookies dělat, protože někdo může mít cookies vypnuto a učit je jak jej v prohlížeči zapnout je na houby. Bohužel tedy nevím jak ten košík vyřešit, zda-li tak jak je mi tady popsáno pomocí SESSION - COOKIES, nebo to zapisovat do mysql a vědět alespoň o tom co si kdo dal do košíku i když se rozhodne např. košík neodeslat nebo to řešit jiným způsobem. Se SESSION a více formuláři jsem to zkoušel, ale bohužel jsem se nedopátral žádného výsledku, na internetu kódů s ukzákou více formulářů také není k dohledání :-(

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: