Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js][php] Obliczenia matematyczne - dodawanie pola, Dodawanie dodatkowego pola a obliczenia w locie
smarcz
post
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 12.05.2005

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


Witam! Mam taki problem: chciałbym napisać skrypt, który w locie obliczał by dane liczbowe w formularzu. Formularz ten składa się z trzech sekcji (pól input) np:
1.) Cena
2.) Zakup
3.) Koszty

Pole input 1 i 2 są stałymi, ale input z pola 3 można dodawać w zależności od sytuacji. Dodawanie nowego pola input odbywa się za pomocą php.

Jak napisać skrypt JS który obliczał by właściwie wypełnione pola input niezależnie od ilości dodanych nowych pól o nazwie koszty.

Dla stałych 3 parametrów potrafię napisać skrypt. Gorzej jeżeli idzie o dodatkowe pola input w dziale koszty.
Dodam, że pole koszty zbudowałem w sposób <input type="text" name="koszty[1]"> w zależności od dodanej liczby pól liczba w nawiasie się zmienia o 1 dla każdego kolejnego pola.

Jak napisać funkcję licz() obliczającą dane i wypisującą w dodatkowym polu input??

Dziękuję:)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
smarcz
post
Post #2





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 12.05.2005

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


Bardzo dziękuję za odpowiedź. W między czasie zrobiłem coś takiego. Dodatkowo dołączyłem system poprawy przecinka "," na kropkę "." aby poprawnie wypełniać pola.

Z podpowiedzi zaraz skorzystam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Tymczasem mój kod:
  1. function licz(dochod)
  2. {
  3. var x=document.getElementById('cena');
  4. var y=document.getElementById('sprzedaz');
  5.  
  6. l=x.value;
  7. l=l.replace(',','.');
  8. l=parseFloat(l);
  9.  
  10. r=y.value;
  11. r=r.replace(',','.');
  12. r=parseFloat(r);
  13.  
  14.  
  15. var k=document.getElementsByName('box');
  16. var licz=0;
  17. for(i=0;i<k.length;i++){
  18.  
  19. z=k[i].value;
  20. z=z.replace(',','.');
  21. z=parseFloat(z);
  22.  
  23. licz+=z;
  24. }
  25. var suma = 0;
  26. suma = r - l - licz;
  27. //alert(suma);
  28.  
  29. dochod.value = suma;
  30.  
  31.  
  32. }
  33.  
  34. <form name="f1">
  35. <div onclick="licz(document.f1.dochod)">Licz </div>
  36. <input type="text" name="dochod"><br>
  37.  
  38. <input type="text" name="sprzedaz" id="sprzedaz">Sprzedaz<br>
  39. <input type="text" name="cena" id="cena" >Zakup<br>
  40.  
  41. <input type="text" name="box" >
  42. <br>
  43. <input type="text" name="box" >
  44.  
  45. <input type="text" name="box" onkeyup="licz(document.f1.dochod)"><!--Ostatni wiersz powinien zawierać zdarzenie onkeyup-->
  46. </form>



A to ten sam skrypt z wykorzystaniem podpowiedzi. Serdeczne dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

  1. function licz(dochod)
  2. {
  3. var x=document.getElementById('cena');
  4. var y=document.getElementById('sprzedaz');
  5. var dochod=document.getElementById('dochod');
  6.  
  7. l=x.value;
  8. l=l.replace(',','.');
  9. l=parseFloat(l);
  10.  
  11. r=y.value;
  12. r=r.replace(',','.');
  13. r=parseFloat(r);
  14.  
  15.  
  16. var k=document.getElementsByName('box');
  17. var licz=0;
  18. for(i=0;i<k.length;i++){
  19.  
  20. z=k[i].value;
  21. z=z.replace(',','.');
  22. z=parseFloat(z);
  23.  
  24. licz+=z;
  25. }
  26. var suma = 0;
  27. suma = r - l - licz;
  28. //alert(suma);
  29.  
  30. dochod.value = suma;
  31.  
  32.  
  33. }
  34.  
  35. <form name="f1">
  36. <div onclick="licz()">Licz </div>
  37. <input type="text" name="dochod" id="dochod"><br>
  38.  
  39. <input type="text" name="sprzedaz" id="sprzedaz">Sprzedaz<br>
  40. <input type="text" name="cena" id="cena" >Zakup<br>
  41.  
  42. <input type="text" name="box" >
  43. <br>
  44. <input type="text" name="box" >
  45.  
  46. <input type="text" name="box" onkeyup="licz()"><!--Ostatni wiersz powinien zawierać zdarzenie onkeyup-->
  47. </form>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 7.11.2025 - 00:34