Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt sumujący dane z tabeli
Forum PHP.pl > Forum > Po stronie przeglądarki
gucio1
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
A dodawanie do koszyka wygląda teraz jak?
gucio1
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
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
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 smile.gif
viking
Cytat
$.ajax({
url: "adres",
data: costam
}).done(function() {
}).fail(function() {
});


Koniec ajaxa. Naprawdę wielka filozofia. Jest jeszcze prostsze Fetch Api
markonix
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
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
Wlacz konsole bledow js w swojej przegladarce a doznasz olsnienia.
markonix
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
https://jsfiddle.net/2k40dwsb/9/
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.