Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Warunek do wyliczania wartości
lustfingers
post 21.04.2017, 06:45:14
Post #1





Grupa: Zarejestrowani
Postów: 99
Pomógł: 5
Dołączył: 18.03.2015

Ostrzeżenie: (0%)
-----


Mam kilka inputów

  1. <li><input type="text" class="col-md-1" id="fraction" name="fraction[]" value="" size="6" />
  2. <input type="text" class="col-md-1" id="ford" name="ford[]" value="" size="6" /></li>



To sumuje mi wartości z wszystkich inputów #ford i wypisuje wynik do #onetotal, teraz chcę aby sumowało tylko te wartości z #ford gdzie w #fraction jest wpisana wartość 1 i wypisać to do #onetotal, i identycznie zsumować wartości z #ford jeśli w #fraction jest wartość 2 i wypisać do #twototal.
  1. var sumaTotal = function() {
  2. var suma = 0;
  3. $('input[id=ford]').each(function(k, els) {
  4. var value = Number($(els).val());
  5. if (!isNaN(value)) suma += value;
  6. })
  7. $('#onetotal').val(suma);
  8. }


Wartość powinienem móc sprawdzić tak
  1. var fraction = els.find('input[id=fraction]').val();
  2. if(fraction == 1){}


Natomiast nie wiem jak to powinno konkretnie wyglądać.

Całość jest nieco bardziej rozbudowana i wygląda mniej więcej tak https://jsfiddle.net/7z31t1gx/10/

Czy takie obliczenie jest w ogóle możliwe?

Jeśli pytanie zatrudne do tego działu to proszę przenieść wątek do innego.

Ten post edytował lustfingers 20.04.2017, 06:23:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post 21.04.2017, 10:45:02
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Poniewaz fraction jest zawsze przed ford, to majac dany ford, poprostu pobierz poprzedni element i wyciagaj z niego wartosc do warunku.

Kod
    $('input[id=ford]').each(function(k, els) {
        var fraction = $(els).prev(); //!!!! tu masz element fraction ktory jest obok element ford.
        var value = Number($(els).val());
        if (!isNaN(value)) suma += value;
    })


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lustfingers
post 21.04.2017, 18:18:44
Post #3





Grupa: Zarejestrowani
Postów: 99
Pomógł: 5
Dołączył: 18.03.2015

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedź ale to mi właściwie nic nie daje ponieważ dalej nie wiem jak napisać warunek który sumowałby tylko te wartości z #ford gdzie w #fraction wpiszę cyfrę 1, a głównie o to mi chodzi.

Zobacz w tym fiddle: https://jsfiddle.net/7z31t1gx/11/ uzupełnij tylko pola A i B dowolnymi liczbami to zobaczysz że oprócz inputów w <li> jest wypełniany na dole input sumujący, natomiast on sumuje wszystko a powinien tylko te z każdego <li> gdy wpisze w D wartość 1.
Go to the top of the page
+Quote Post
nospor
post 21.04.2017, 18:43:04
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez ci podalem jak masz znalezc fraction. Majac fraction pobierasz jej wartosc tak samo jak wartosc ford. I co, nie umiiesz teraz zrobic if (wartosc == 1) { sumuj} ? Nie przesadzasz z lekka? Nawet jak na przedszkole?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lustfingers
post 21.04.2017, 21:56:51
Post #5





Grupa: Zarejestrowani
Postów: 99
Pomógł: 5
Dołączył: 18.03.2015

Ostrzeżenie: (0%)
-----


Może i przesadzam nie wiem, po prostu tego nie rozumie i przekopałem sporo internetu, być może nie wiem pod jakim hasłem szukać...
Natomiast to co ty napisałeś to ja napisałem w pierwszym poscie i dalej nie wiem jak ten warunek ma wyglądać, mam proste myślenie i np. w mysql jest piękne ułatwienie w postaci komendy WHERE i wtedy mam wszystko pięknie zsumuj WHERE #fraction = 1, teraz próbując przełożyć to na js zaczynam gubić logikę gdyż gdy robię tak:

  1. var sumaTotal = function() {
  2. var suma = 0;
  3. $('input[id=ford]').each(function(k, els) {
  4. var fraction = $(els).prev();
  5. var value = Number($(els).val());
  6.  
  7. if ((!isNaN(value)) && (fraction == 1)) { suma += value;}
  8. })
  9. $('#onetotal').val(suma);
  10. }


Zawsze mam wynik 0, być może robię jakąś straszną gafę w kodzie w tym lub innym miejscu.
Go to the top of the page
+Quote Post
nospor
post 21.04.2017, 22:02:33
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




if ((!isNaN(value)) && (fraction == 1)) { suma += value;}
Przeciez ci napisalem, ze podalem ci jak dobrac sie do ELEMENTU fraction. Napisalem ci rowniez, ze majac ELEMENT masz pobrac jego WARTOSC tak samo jak pobierasz WARTOSC ELEMENTU FORD.
Fraction nie moze sie rownac 1 bo to jest ELEMENT. Wpierwsz masz pobrac WARTOSC ELEMENTU. Tak samo jak pobierasz WARTOSC ELEMENTU FORD.

To sa naprawde proste rzeczy, tylko z jakiegos powodu nie czytasz co sie do ciebie pisze. Nie trzeba tu kopac internetu. Wszystko masz podane jak na tacy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lustfingers
post 22.04.2017, 12:26:55
Post #7





Grupa: Zarejestrowani
Postów: 99
Pomógł: 5
Dołączył: 18.03.2015

Ostrzeżenie: (0%)
-----


Edit.

Próbuję to zrobić tak:

  1. var sumaTotal = function() {
  2. var suma1 = 0;
  3. var suma2 = 0;
  4. $('input[id=ford]').each(function(k, els) {
  5. var value = Number($(els).val());
  6. var fraction = Number($('input[id=fraction]')[k].value);
  7. if(fraction === 1) {
  8. if (!isNaN(value)) suma1 += value;
  9. }
  10.  
  11. if(fraction === 2) {
  12. if (!isNaN(value)) suma2 += value;
  13. }
  14. })
  15.  
  16. $('#onetotal').val(suma1);
  17. $('#twototal').val(suma2);
  18. }
  19.  


Teraz gdy uzupełnię po kolei A, B przed uzupełnieniem D to nie działa najpierw muszę uzupełnić D...

Edit2.

Ogarnięte smile.gif

Ten post edytował lustfingers 22.04.2017, 15:27:10
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 21:02