gucio1
29.05.2017, 11:28:55
Witam,
tworzę sklep internetowy. Chcę zrobić wszystko od podstaw żeby też przy okazji się tego wszystkiego nauczyć.
Po zakupie produkty trafiają do koszyka gdzie są wykazane w tabeli.
Chcę pobrać dane z kolumny cena i wyświetlić je w okienku razem.
Chcę żeby zliczały się dynamicznie.
Proszę o jakieś nakierowanie.
Z tego co próbuje wykombinować to:
Przypisuję do nagłówka kolumny<tr> cena funkcje która pobiera wszystkie dzieci <th> tej kolumny.
Wrzucam wszystkie do tablicy tymczasowej a potem zliczam je np. za pomocą funkcji eval:
eval(ciąg znaków, [obiekt])
I wyświetlam.
Proszę o podpowiedź jak pobrać elementy z danej kolumny. Jakiej funkcji użyć do pobrania tych danych.
Może powinienem wykorzystać po prostu document.getElementBy i jakoś wrzucić to w pętle zliczając wcześniej ile razy ma się obrócić metodą length?
Pozdrawiam.
markonix
29.05.2017, 14:20:21
A dodawanie do koszyka wygląda teraz jak?
gucio1
30.05.2017, 10:06:07
Po kliknięciu w dodaj do koszyka zapisuje coś w zmiennej sesyjnej z numerem ID produktu i potem pobieram dane tego produktu z bazy i wyświetlam jeszcze w koszyku w tabeli.
Myślałem żeby to zrobić w php ale i tak potem chciałbym jeszcze żeby wybór checkboxa z wysyłką miał wpływ na zmianę ceny końcowej to i tak musiał bym użyć JS
Ok, mam coś takiego:
https://jsfiddle.net/2k40dwsb/4/Przerobiłem coś ze stackoverflow, będzie ok?
Teraz następny problem.
Jak uzależnić wyświetlaną kwotę razem od wybranego radia?
Coś w stylu jeśli radio jest checked to pobieram tego spama i wyświetlam go + 10zł
markonix
30.05.2017, 11:21:02
Po co Ci dynamiczne liczenie sumy tabeli skoro i tak sama tabela jest statyczna - zrobiona tylko po stronie PHP?
Licz wszystko po stronie PHP albo zrób wszystko w oparciu o JS/Ajax.
gucio1
30.05.2017, 13:24:55
Nie umiem AJAXa a w JS jakoś tam się troszkę odnajduję.
I w samym phpie nie zrobię zmiany kwoty w zależności od wybranego radia czy checkboxa.
I dla samej nauki chciałem zrobić coś w JS
viking
30.05.2017, 13:35:18
Cytat
$.ajax({
url: "adres",
data: costam
}).done(function() {
}).fail(function() {
});
Koniec ajaxa. Naprawdę wielka filozofia. Jest jeszcze prostsze
Fetch Api
markonix
30.05.2017, 14:56:46
I tak powtarzam, że bezsensu jest mieszać w ten sposób technologie.
Skoro listujesz produkty za pomocą czystego PHP to i tak potrzebujesz metod w PHP do liczenia sumy, a tę policzysz w prosty sposób (zwykły foreach po koszyku).
Do bazy jak będziesz chciał w końcu zapisać te zamówienie to skąd weźmiesz sumę koszyka jak z backendu? Będziesz przekazywał zmienne JS do bazy?
Dopiero w drugim kroku uczysz się JS i dodajesz takie rzeczy jak:
- dynamiczny insert do koszyka (wysłanie ajaxem requestu, zaktualizowanie wartości koszyka)
- przeładowanie/przeliczenie koszyka po zmianie formy zapłaty, dostawy (w samym PHP wystarczy na początku przycisk "Zaktualizuj").
gucio1
30.05.2017, 15:10:36
No w sumie masz rację wystarczyło by zliczyć wartości cen produktów ze zmiennych sesyjnych i wyświetlać. No ale chciałem bardzo to aktualizowanie wartości zamówienia zależnie od wybranej opcji.
No i prawie rozkminiłem to w JS.
Stanąłem na:
https://jsfiddle.net/2k40dwsb/7/nie wiem jak dodać zmienne pobrane ze spanów.
Tak czy siak będę musiał zrobić jak mówisz żeby dodać zamówienie do bazy, bo nie będę tego robił przez JS.
Ale już z ciekawości co zrobić żeby te dane pobrane ze spanów dodać?
nospor
30.05.2017, 15:19:36
Wlacz konsole bledow js w swojej przegladarce a doznasz olsnienia.
markonix
30.05.2017, 15:19:58
Nie ma najmniejszego sensu w ten sposób to robić. Wartości w span to nie są wartości służące do obliczeń, a do wyświetlania. Powinny mieć walutę, formatowanie itp.
Zacznij to robić zgodnie z logiką, a nie kombinuj na siłę.
viking
30.05.2017, 15:28:33
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.