Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JS]Dynamiczne dodoawanie
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
beher83
Mam małą zagwozdkę, a mianowicie..
Stworzyłem box score dla drużyn koszykówki. Po wybraniu ilości dogrywek i wybraniu 2 drużyn pojawia się pusta tabela w której można wpisać zdobyte punkty, zbiórki, asysty itd.. Tabela pojawia się w tzw. zakładkach odpowiednio do każdej kwarty (q1,q2,q3,q4 ) oraz jeżeli są to również dogrywki. Na samym końcu jest zakładka Final Box.
I tu moje pytanie, w jaki sposób sumować wszystkie pola np. pkt danego gracza używając onkeyup by w final box pojawiała się suma np. pkt z każdej kwarty i dogrywek.
Będę wdzięczny za podpowiedzi, oraz przykłady jakichś skryptów które mogę przeanalizować i się z nich uczyć.
nospor
To co chcesz zrobic z php nie ma zadnego związku... sam piszesz o uzyciu onkeyup a to jest js. przenosze.
beher83
Witam czy ktoś może ma jakiś pomysł na sumowanie tych pól przy użyciu onkeyup lub jakiś inny pomysł ?
tzm
http://jsfiddle.net/wqm6y8ku/

Nie wiem czy dobrze zrozumiałem przykład ale to Cie bardzo nakieruję.
beher83
  1. <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
  2. function add(obj){
  3.  
  4. var x = obj.id;
  5. var i = x.substr(3,2);
  6. var j = x.substr(0,3);
  7. var z = j+i;
  8. a = $('#fb_'+z).text();
  9. v = $('#'+z).val();
  10. sum = parseInt(a)+parseInt(v);
  11. $("#fb_"+z).html(sum);
  12. }
  13. <div class='tab'>
  14. kwarta 1<br>
  15. gracz1: <input type='text' id='fg1' size='1' maxlength='2' onkeyup='add(this)'>
  16. gracz2: <input type='text' id='fg2' size='1' maxlength='2' onkeyup='add(this)'>
  17. gracz3: <input type='text' id='fg3' size='1' maxlength='2' onkeyup='add(this)'>
  18. </div>
  19. <div class='tab'>
  20. kwarta 2<br>
  21. gracz1: <input type='text' id='fg1' size='1' maxlength='2' onkeyup='add(this)'>
  22. gracz2: <input type='text' id='fg2' size='1' maxlength='2' onkeyup='add(this)'>
  23. gracz3: <input type='text' id='fg3' size='1' maxlength='2' onkeyup='add(this)'>
  24. </div>
  25. <br><br>
  26. gracz1: <span id='fb_fg1'>0</span>
  27. gracz2: <span id='fb_fg2'>0</span>
  28. gracz3: <span id='fb_fg3'>0</span>
  29. </body>


zakładamy że kwarta 1 i 2 są w zakładkach (nie chce mi sie całego kodu wklejac)
Udało mi sie dojść do czegoś takiego i troche utknąłem... a mianowicie jeżeli wpisuje cyfry tylko w np. kwarta 1-> gracz 1 to wszystko mi sumuje w wyniki gracz 1, ale jak wpisze juz do kwarta2->gracz 1 to wtedy bieże znów gracza z pierwszej kwart.. jak to zrobic by bylo dobrze i sumowalo gracza 1 z kwarty 1 i 2, gracza 2 z kwart 1 i 2 itd..?
nie moge zmienic id w każdej kwarcie na różne gdyż kwart jest więcej..
miałby ktoś jakiś pomysł?
Pyton_000
Źle się do tego zabierasz.
Na event onKeyUp powinieneś sumować wartości z pól odpowiadających np. graczowi a nie dodawać to co wklepiesz do sumy, bo jak sie pomylisz to będzie Ci nadal dodawało, a i jak wpiszesz np. 22 to doda Ci raz 2 a potem 22 czyli 24 smile.gif
Poza tym id ma być unikalne, a Ty używasz tego samego dla różnych zakładek np. fg1

[Update]
No dobra, nudzi mi się wink.gif Wybaczcie mi smile.gif Za dobre serce dziś mam.
  1. <div class='tab'>
  2. kwarta 1<br>
  3. gracz1: <input type='text' class="player_1" name="player_1" size='1' maxlength='2'>
  4. gracz2: <input type='text' class="player_2" name="player_2" size='1' maxlength='2'>
  5. gracz3: <input type='text' class="player_3" name="player_3" size='1' maxlength='2'>
  6. </div>
  7. <div class='tab'>
  8. kwarta 2<br>
  9. gracz1: <input type='text' class="player_1" name="player_1" size='1' maxlength='2'>
  10. gracz2: <input type='text' class="player_2" name="player_2" size='1' maxlength='2'>
  11. gracz3: <input type='text' class="player_3" name="player_3" size='1' maxlength='2'>
  12. </div>
  13. <div class='tab'>
  14. kwarta 3<br>
  15. gracz1: <input type='text' class="player_1" name="player_1" size='1' maxlength='2'>
  16. gracz2: <input type='text' class="player_2" name="player_2" size='1' maxlength='2'>
  17. gracz3: <input type='text' class="player_3" name="player_3" size='1' maxlength='2'>
  18. </div>
  19. <div class='tab'>
  20. kwarta 4<br>
  21. gracz1: <input type='text' class="player_1" name="player_1" size='1' maxlength='2'>
  22. gracz2: <input type='text' class="player_2" name="player_2" size='1' maxlength='2'>
  23. gracz3: <input type='text' class="player_3" name="player_3" size='1' maxlength='2'>
  24. </div>
  25.  
  26. <br><br>
  27. gracz1: <span id='sum_1'>0</span>
  28. gracz2: <span id='sum_2'>0</span>
  29. gracz3: <span id='sum_3'>0</span>
  30.  
  31. $(function() {
  32. $('input[name^="player"]').keyup(function(event) {
  33. var player = $(this).attr("name").split('_');
  34. player = player[1];
  35.  
  36. var player_sum = 0;
  37.  
  38. $('.player_'+player).each(function(index, el) {
  39. var pt = parseInt($(el).val());
  40. if(!isNaN(pt))
  41. {
  42. player_sum += pt;
  43. }
  44. });
  45. $('#sum_'+player).html(player_sum);
  46. });
  47. });
beher83
Wielkei dzięki o coś takiego mi chodziło teraz to sobie przestudiuje co i jak oraz z kad co sie bierze smile.gif jeszcze raz dzieki
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.