Autor | Zpráva | ||
---|---|---|---|
free Profil * |
#1 · Zasláno: 27. 2. 2010, 21:48:32
Dobrej večer, chci se zeptat na tento script Všechno mi maká krom opery jak má, ale jak to mám udělat aby se to uložilo do sessionu? Efekt je krásná věc, ale dávam přednost funkčnosti :-) Děkuju všem za rady.
|
||
Perry Profil |
#2 · Zasláno: 27. 2. 2010, 22:33:18
Moc nechápu dotaz... co se má kam uložit ? Jako pokud něco chceš uložit do SESSION, tak nejdřív musíš udělat session_start() (případně ještě ini_set(session.use_cookie, 1) ) a pak $_SESSION['data'] = $data...
|
||
free Profil * |
#3 · Zasláno: 27. 2. 2010, 22:48:56
To vím, ale k postu vlastně nedochází :-) Tak nevím jak mám udělat aby proběhnul zápis. Vím jen, že to nějak jde, ale nevím jak. Jinak session_start(); a další věci znám jen nevím jak to mám udělat v tomhle případě.
|
||
Alphard Profil |
#4 · Zasláno: 27. 2. 2010, 23:03:25
free:
„To vím, ale k postu vlastně nedochází :-)“ Je-li to klasický AJAX, tak by mělo docházet. Těžko můžete čekat, že někdo bude detailně studovat ten script, ale na první pohled do Firebugu se odesílá POST požadavek na addProduct.php |
||
free Profil * |
#5 · Zasláno: 27. 2. 2010, 23:24:12
O tom souboru vím, ale myslel jsem, že ze souboru jen bere již načtená data. Moc se omlouvám, za svou neznalost, ale ani nevidim, že by se prohlížeč nějak choval jako načítáním dat.
|
||
Alphard Profil |
#6 · Zasláno: 27. 2. 2010, 23:42:49
free:
„ale ani nevidim, že by se prohlížeč nějak choval jako načítáním dat.“ To je princip AJAXu, bez vývojářských programů (jako např. již zmíněný Firebug) to neuvidíte. V podstatě to funguje tak, že javascript na pozadí odesílá a zase přijímá data ze serveru. Možná byste si měl nejdříve nastudovat obecně něco o AJAXu. Váš script se skládá v podstatě ze tří částí (odhaduji podle chování): 1. komunikace se serverem, tj. samotný AJAX 2. aktualizace seznamu zboží v košíku 3. animace přenesení zboží Ale zdá se mi, že netušíte, která bije. Třeba by vám pomohlo vidět přednášku Davida Grudla z WebExpa, kde představovat AJAX s Nette. Ukázkový příklad z WebExpa 2009 » phpFashion Já jsem někde viděl i to video, ale už nevím kde, zkuste hledat na Nette fóru. |
||
free Profil * |
#7 · Zasláno: 27. 2. 2010, 23:48:36
Děkuju za radu a za odkaz. Celkem jste i vystihl, že nevím která bije :-) Představit si to umim a moje teorie byla taková jak píšete, ale dokud mi to někdo neposvětí, tak nevěřim. Ještě jednou moc děkuju a snad to zvládnu :-)
Jen se ještě zeptam: jestli to je tedy tak jak píšete a já si myslim, tak můžu provést zápis a vypis objednaného zboží nemusí být javascriptem, ale sessionem? Ještě jednou děkuju |
||
Alphard Profil |
#8 · Zasláno: 28. 2. 2010, 00:04:45 · Upravil/a: Alphard
free:
„vypis objednaného zboží nemusí být javascriptem, ale sessionem?“ Session je uložiště dat, tím nic nevypíšete. A jestli nechcete znovu načítat stránku (klasický přístup), nemáte jinou možnost, než javascript (teď nechávám stranu Flash, SilverLight apod.). Ještě doplním, že třeba s použitím frameworku jQuery je to otázka pěti řádků kódu. Sice je to přístup s dělem na komára, ale asi je to jednodušší než se učit obsluhovat AJAXové požadavky a měnit DOM strukturu dokumentu přímo. |
||
free Profil * |
#9 · Zasláno: 28. 2. 2010, 00:30:51
Nevím si moc rady a tak se drze zeptám jestli by jste těch 5 řádků někde neměl nebo jestli by jste je sám nenapsal. Vím, že to neni předmětem tohodle fora přímo někomu něco psát, ale zoufalost je taky hrozná věc :-(
|
||
Alphard Profil |
#10 · Zasláno: 28. 2. 2010, 00:49:40
Teďka se začínám trochu ztrácet v tom, co už máte hotové. O jQuery jsem psal spíš obecně (vlastě skoro od začátku se bavíme o principech AJAXu obecně), vámi odkazovaný script si vše řeší sám.
Takže, když se vrátím k původní otázce, „jak to mám udělat aby se to uložilo do sessionu?“, zkopírujte sem obsah souboru addProduct.php. |
||
free Profil * |
#11 · Zasláno: 28. 2. 2010, 00:54:01
Soubor vypadá momentálně takhle:
<? if (!empty($_POST['productId'])) { $_SESSION['cart'][$_POST['productId']] = isset ($_SESSION['cart'][$_POST['productId']]) ? ($_SESSION['cart'][$_POST['productId']] + 1) : 1; } if(!isset($_POST['productId']))exit; switch($_POST['productId']){ case "1"; echo "1|||Calendar|||50"; break; case "2"; echo "2|||Shopping module|||250"; break; case "3"; echo "3|||Produkt 1".$_SESSION['cart'][3]]."|||35"; break; case "4"; echo "4|||Produkt 2".$_SESSION['cart'][4]]."|||50"; break; case "5"; echo "5|||Produkt 4".$_SESSION['cart'][5]]."|||60"; break; case "6"; echo "6|||Produkt 3|||150"; break; case "7"; echo "7|||HTML editor|||150"; break; case "8"; echo "8|||CSS creator|||125"; break; } ?> |
||
free Profil * |
#12 · Zasláno: 28. 2. 2010, 00:56:33
Bude to znít směšně, ale když by to nebylo tak pěkný :-)
|
||
Alphard Profil |
#13 · Zasláno: 28. 2. 2010, 00:57:30
Řádek 3 ukládá zboží do session, tak kde je problém? :-)
|
||
free Profil * |
#14 · Zasláno: 28. 2. 2010, 01:01:14
že mi ho nezobrazuje aktualne jedine po refresh
|
||
Alphard Profil |
#15 · Zasláno: 28. 2. 2010, 01:11:06
Odkazovaná stránka je pomocí javascriptu aktualizovaná v reálném čase, proč to neuděláte stejně? Po dokončení AJAXového požadavku je volán callback, který by měl aktualizovat košík.
|
||
free Profil * |
#16 · Zasláno: 28. 2. 2010, 01:16:01
Protože nevím jak :-(
|
||
free Profil * |
#17 · Zasláno: 28. 2. 2010, 01:24:56
Hledal jsem tu aktualizaci v js, ale nenašel. Nevíte kde a co mám potom udělat?
|
||
Alphard Profil |
#18 · Zasláno: 28. 2. 2010, 01:27:53
Stará se o to funkce showAjaxBasketContent() v souboru fly-to-basket.js. Víc vám ale asi neporadím, javascript nemám moc v lásce a neznám ho natolik, abych vám ten script zpaměti napsal. Na straně PHP je vše v pořádku.
|
||
free Profil * |
#19 · Zasláno: 28. 2. 2010, 01:29:50
Já js taky moc nemusím, ale ted se mi celkem hodí a v budoucnu se ho chci alespon trosku naucit i kdyz mam zatim jen predsudky moznost vypnuti v prohlizeci pocina je :-) Jeste jednou Vám moc děkuju
|
||
Časová prodleva: 16 let
|
0