Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Jquery Tabela i funkcja if
Forum PHP.pl > Forum > Przedszkole
Randallmaster
próbuję stworzyć tabelę w jquery generowaną z formularza. Generalnie wychodzi mi sumowanie:

  1. var vat_stawka= $('#tabela select[name*=vat]');
  2. console.log(vat_stawka)
  3. vat_licz=vat_stawka.length;
  4.  
  5. for(i=0;i<vat_licz;i++) vat_stawka_pokaz+=Number($(vat_stawka[i]).val());


później tylko i wyłącznie próbuję wykonać taką funkcję if, problem pojawia się gdy mam 2 wartości vat ponieważ val() mi sumuje.

  1. ($('#stawka').val() == '23') ? $("#vat_23").css("display", "block") : $("#vat_23").css("display", "none");
  2. ($('#stawka').val() == '8') ? $("#vat_8").css("display", "block") : $("#vat_8").css("display", "none");
skowron-line
Nie bardzo rozumie pytanie.

[JAVASCRIPT] pobierz, plaintext
  1. $("#vat_23").css("display", ($('#stawka').val() == '23') ? "block", "none");
[JAVASCRIPT] pobierz, plaintext

jak robisz tak
[JAVASCRIPT] pobierz, plaintext
  1. ($('#stawka').val() == '23') ? $("#vat_23").css("display", "block") : $("#vat_23").css("display", "none");
[JAVASCRIPT] pobierz, plaintext

to przynajmniej $("#vat_23") przypisz do zmiennej, bo to nie wpływa dobrze na optymalizacje.
Randallmaster
Mam taką tabelę:

towar vat
mleko 23
chrupki 8


Z wyżej podanej tabeli potrzebuję pobrać terac wartości vat czyli mam 8 i 23 po czym włączają się divy vat_8 i vat_23, jeśli mamy taką tabelę

towar vat
mleko 23

to włącza się tylko div vat_23

Kod:

http://jsfiddle.net/2zabK/1/
skowron-line
Jeżeli będziesz sumował w pętli stawkę vat i dodasz do siebie 23 + 8 to raczej nigdy te warunki Ci się nie spełnią.
Przypisz sumę do tablicy gdzie kluczem będzie wartość stawki vat
[JAVASCRIPT] pobierz, plaintext
  1. var vat = new Array();
  2. vat[8] = 0;
  3. vat[23] =0;
[JAVASCRIPT] pobierz, plaintext

i na końcu sprawdzaj czy wartość danego elementu jest większa od zera i na tej podstawie wyświetlaj konkretną informację.
Randallmaster
Cytat(skowron-line @ 17.01.2013, 12:50:51 ) *
Jeżeli będziesz sumował w pętli stawkę vat i dodasz do siebie 23 + 8 to raczej nigdy te warunki Ci się nie spełnią.
Przypisz sumę do tablicy gdzie kluczem będzie wartość stawki vat
[JAVASCRIPT] pobierz, plaintext
  1. var vat = new Array();
  2. vat[8] = 0;
  3. vat[23] =0;
[JAVASCRIPT] pobierz, plaintext

i na końcu sprawdzaj czy wartość danego elementu jest większa od zera i na tej podstawie wyświetlaj konkretną informację.


Dobrze tylko jest mały problem ponieważ np pozycji vat[23] mogę mieć np 3 a vat[8] ze 2 ponieważ tabela jest dynamiczna, a to co podałeś tyczy się jednego 23 i jednego 8 dobrze rozumiem?

Dlatego pobieram dane vat_stawka_pokaz
skowron-line
Źle rozumiesz, w pętli przejedz sobie po każdym wierszu i sprawdz sobie jaka jest wartość vat
[JAVASCRIPT] pobierz, plaintext
  1. for(...) // tu po każdym TR jeżdzisz
  2. {
  3. // tu wyciagasz konkretny selecte vat
  4. if(vat.val() == '23')
  5. {
  6. vat['23'] += wartosc_vat;
  7. }
  8. }
[JAVASCRIPT] pobierz, plaintext
Randallmaster
Udało mi się zrobić tablicę ale dlaczego mi podmienia display....

http://jsfiddle.net/2zabK/7/
nospor
Ukrywasz/chowasz zawsze niezależnie czy to 23/8 czy nie. To jest błąd.

Akcję ukrywania/pokazywania masz robić dopiero wtedy, gdy jest 23/8. W przeciwnym wypadku bedziesz miał tak jak teraz - czyli źle smile.gif

Zauważ, że ostatnim elementem jest stawka 8. Wówczas warunek na 23 ci się nie spelnia i Ty chowasz 23 - bład jest dość logiczny.
Randallmaster
Powyżej źle wytłumaczyłem temat więc poniżej wyjaśniam dokładnie

Aby dokładnie pokazać wam o co chodzi, musielibyście wykonać po kolei co napisałem :

1. Wejdzcie na tą stronę: http://jsfiddle.net/YK5a9/3/
2. Kliknijcie przycisk "przelicz" (pokazało w podsumowaniu 2 stawki vat 23% i 8%)
3. usuńcie pozycję z vat 8 klikając na przycisk "usun"
4. ponownie kliknij przycisk "przelicz"

no i mam widoczną w podsumowaniu ciągle stawkę vat 8 a nie powinno być jej widać ponieważ zostało w górnym formularzu tylko 23?

Wiem na pewno że problem tkwi w pętli for oraz funkcji if. Myślę że całkowicie źle do tego się zabrałem.
nospor
W momencie gdy klikasz PRZELICZ, na dzień dobry masz ukryć wszystkie divy z VAT.
Dopiero potem masz robić pętle, która pokazuje tylko zaznaczone VAT...
Randallmaster
Dziękuję

Już zrobione:
http://jsfiddle.net/YK5a9/19/

Temat do zamknięcia.

Pozdrawiam
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.