Strona główna kursu

JavaScript - Cookie, koszyk na zakupy

DZIAŁANIE: Wejdź tutaj
 

Kod:

Kurs JavaScript, Kurs Ajax, Kurs PHP

Ewentualne Objaśnienia:

Zaprezentowany przykład pochodzi z książki Dave Thau "JS Podręcznik Tworzenia Interaktywnych Stron Internetowych". Generalnie cały potrzebny JavaScript do tego przykładu znajduje się tutaj . Nie będę omawiał wszystkiego co jest w tym pliku, skupie się na ważniejszych rzeczach :
- główna strona sklepu to zwykłe linki do dwóch stron z towarami oraz przycisk otwierający stronę podsumowania zakupów
- pliki z towarami to proste formularze, gdzie podajemy ile sztuk danego produktu chcielibyśmy zakupić, w momencie kliknięcia dodaj wywoływana jest funkcja addToCart :
    - jej parametry to : liczba zamawianych sztuk, nazwę towaru, cenę towaru
    - tworzony jest ciąg typu : produkt:ilość_sztuk:cena_za_sztukę
    - sprawdzane jest poprzez funkcję WM_readCookie() czy istnieje u danego usera ciastko 'purchases'. Jeśli to ciastko już istnieje to na jego końcu jest zapisany jest znak "/" oraz ciąg - ten, o którym pisałem wyżej
    - czyli jak się domyślacie w cookie każdy zamówiony towar jest oddzielany znakiem "/" a poszczególne składowe danego towaru przez ":"
    - jest to o tyle bezsensowne bo każdy towar jeśli znowu go zamówimy (dołożymy jakieś sztuki) jest dopisywany do ciągu, powinno być tak, że ciąg jest modyfikowany (ilość sztuk tego powtarzającego się towaru)
    - po tych zabiegach jest zapisywane ciastko przez funkcję WM_setCookie()
- plik wyświetlający podsumowanie (widać w nim, że przykład ten za dobry nie jest ze względu właśnie na ten nieudolny zapis w cookie tych samych towarów) korzysta z funkcji checkOut(), która z kolei korzysta z funkcji readTheCookie () :
    - odczytywane jest cookie przez funkcję WM_readCookie
    - jeśli cookie istnieje sprawdzane jest czy istniej więcej towarów czy tylko jeden (bo znak / oddziela towary). Jeśli tylko jeden towar to umieszczany jest on w tablicy the_info na pozycji 0 (indeks)
    - jeśli towarów jest więcej oddzielamy je do tablicy split_stuff, a z tej tablicy kopiujemy to do tablicy the_info (ona została przekazana jako parametr tej funkcji, przez funkcję checkOut)
    - po tym wszystkim tablica the_info zawiera informacje o wszystkich towarach (lub też jednym)
- funkcja checkOut() :
    -  czytamy produkty do tablicy the_stuff (omówione wyżej)
    - w pętli towary są rozdzielane (pamiętacie zapis z dwukropkami dla danego towaru), rozdzielenia następuje do tablicy this_item, kolejna pętla umieszcza informacje  o każdym z towarów (towar, ilość, cena) w tabelce, a dalej jest obliczona wartość kolumny razem, wartość ta jest również dodawana do zmiennej total, która przechuje całkowitą sumę cen zakupów.