Autor Zpráva
free
Profil *
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
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 *
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
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 *
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
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 *
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
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 *
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
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 *
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 *
Bude to znít směšně, ale když by to nebylo tak pěkný :-)
Alphard
Profil
Řádek 3 ukládá zboží do session, tak kde je problém? :-)
free
Profil *
že mi ho nezobrazuje aktualne jedine po refresh
Alphard
Profil
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 *
Protože nevím jak :-(
free
Profil *
Hledal jsem tu aktualizaci v js, ale nenašel. Nevíte kde a co mám potom udělat?
Alphard
Profil
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 *
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

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