Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JAVA]/ Automatyczne obliczanie i zaokrąglanie pól
Forum PHP.pl > Forum > Przedszkole
harbii
Mam coś takiego:

  1. <INPUT TYPE="text" NAME="ilosc">
  2. <INPUT TYPE="text" NAME="cena">
  3. <INPUT TYPE="text" NAME="wartosc">


jak zrobić aby po wpisaniu ilości lub ceny wyliczało wartość i wpisywało w "wartosc"?
cornholio666
  1. <script type="text/javascript">
  2.  
  3. function licz(aform){
  4.  
  5. aform.wartosc.value = parseInt(aform.ilosc.value) + parseInt(aform.cena.value);
  6. }
  7.  
  8. <form action="strona.html" name="xxx">
  9. <INPUT TYPE="text" NAME="ilosc" >
  10. <INPUT TYPE="text" NAME="cena" >
  11. <INPUT TYPE="text" NAME="wartosc" >
  12. <input type="button" onclick=" licz(xxx);">
  13. </form>
  14. </body>


Tyle że z buttonem

powered by google.pl smile.gif
harbii
no z butonem to są też inne sposoby smile.gif
a jak zrobić aftomatycznie po wpisaniu liczby w pole?
Wieviór
Dynamiczny formularz, czyli JS

www.google.pl
harbii
Kolego Wieviór
Nie pytałem się o adres wyszukiwari google. tiredsmiley.gif
Forum jest po to aby pytać i wymieniać informacje, ja zapytałem o automatyczne liczenie pól. Ty mi odpowiadasz (nie sprawdzając wcześniej), że odp jest na google! - na pierwszych 10 stronach nie ma konkretnej odpowiedzi dla laika z działu przedszkole czyli mnie.
Jeżeli nie wiesz to nie kozacz takimi odpowiedziami tongue.gif
Bo ja tez moge być taki kozak i na pytanie:
Jak zbudować bombę atomową?
Uważając się za znawcę odpowiedzieć:
budowa bomby atomowej -> www.google.pl offtopic.gif

Jeżeli kolego wiesz jak napisać kod który przeliczy liczby z pól to bardzo Cię proszę napisz jak nie to nie odsyłaj ludzi na wyszukiwarki to nie jest ideą różnych forum.

A wracają do tematu. Czy ma ktoś taki scrypt który przeliczy liczby z formularza smile.gif?
Wieviór
Troche mi rzeczywiście zajęło szukanie i w sumie znalazłem tylko odsyłania do AJAX. Myślałem, że to będzie na google. Sam wpadłem na pomysł, przerabiając skrypt cornholio:

  1. <script type="text/javascript">
  2.  
  3. function licz(aform){
  4.  
  5. aform.wartosc.value = parseInt(aform.ilosc.value) +
  6.  
  7. parseInt(aform.cena.value);
  8. }
  9.  
  10. <form action="strona.html" name="xxx">
  11. <INPUT TYPE="text" NAME="ilosc" onChange=" licz(xxx);">
  12. <INPUT TYPE="text" NAME="cena" onChange=" licz(xxx);">
  13. <INPUT TYPE="text" NAME="wartosc">
  14. </form>
  15. </body>


Powinno działać.
sadu
mozna tez dac onKeyUp=" licz(xxx);"

pozdro
harbii
dzięki działa ale nie do konca biggrin.gif

nie liczy liczb z przecinkiem
np

10,56 + 4,54 pokazuje 14

chodzi o to aby dodawał lub mnożył i zaokrąglał wynik do 2 miejsc po przecinku. biggrin.gif biggrin.gif

znalazłem fajny kod ale w vbscript jednak on działa tylko w IE -może ktos wie jak uruchomic go na Firefox itp?




sadu
Gdzie wpisać onKeyUp=" licz(xxx);" ?
My4tic
1. parseInt - konweruje liczby do liczb całkowitych (INT) dlatego nie liczy zmiennoprzecinkowych

2. onKeyUp możesz wstawić zamiast onChange ale w tym przypadku to bez różnicy - onKeyUp wywoła funkcje liczącą kiedy zostanie zwolniony przycisk klawiatury, natomiast onChange kiedy wartość w polu formularza się zmieni.
harbii
acha

to jak zrobić aby liczył po przecinku i wynik zaokrąglił do 2 miejsca? worriedsmiley.gif
Hacker
parseFloat zamiast parseInt
oraz [js] zaokrąglanie liczby
Według mnie lepszy by był onKeyUp
bo onChange wywołuje się dopiero jak się odznaczy pole formularza
harbii
oki
Pokleiłem pare kodów i wyszło mi:
  1. <script type="text/javascript">
  2.  
  3. function licz(aform){
  4.  
  5. aform.liczba.value = parseFloat(aform.ilosc.value) +
  6.  
  7. parseFloat(aform.cena.value);
  8. }
  9. function zaokraglenie(liczba) {
  10. liczba = liczba * 100;
  11. var wynik = Math.round(liczba)/100;
  12. window.alert(wynik);
  13. }
  14. <form action="a.php" name="xxx">
  15. <INPUT TYPE="text" NAME="ilosc" onKeyUp="licz(xxx);zaokraglenie(liczba.value);">
  16. <INPUT TYPE="text" NAME="cena" onKeyUp=" licz(xxx);zaokraglenie(liczba.value);">
  17. <INPUT TYPE="text" NAME="liczba">
  18.  
  19. </form>


działa ok ale wynik pokazuje mi w okienku (window.alert(wynik); )

Jak zrobić aby to w inpucie liczba pojawiała sie wartość już zaokrąglona?questionmark.gif

Czy wiecie jak zrobić aby używać "," zamiast "." ? ( z przecinkiem nie przelicza)
Hacker
Cytat
Czy wiecie jak zrobić aby używać "," zamiast "." ? ( z przecinkiem nie przelicza)


Napisać własną funkcję biggrin.gif

Cytat
Jak zrobić aby to w inpucie liczba pojawiała sie wartość już zaokrąglona?questionmark.gif

Np. tak
Kod
<script type="text/javascript">

function licz(aform){

aform.liczba.value = zaokraglenie(parseFloat(aform.ilosc.value) +

parseFloat(aform.cena.value));
}
function zaokraglenie(liczba) {
liczba = liczba * 100;
var wynik = Math.round(liczba)/100;
return wynik;
}
</script>
<form action="a.php" name="xxx">
<INPUT TYPE="text" NAME="ilosc" onKeyUp="licz(xxx);">
<INPUT TYPE="text" NAME="cena" onKeyUp=" licz(xxx);">
<INPUT TYPE="text" NAME="liczba">

</form>
timber
Witam,

Uzylem skryptu ktory podaliscie koledze.
Bardzo mi pomogl ale u mnie nie bardzo dziala zaokragleanie.

Kod
<script type="text/javascript">
function licz(aform){
aform.add_cena2.value = parseFloat(aform.add_cena.value) * parseFloat(1.22);
}
function zaokraglenie(add_cena2) {
add_cena2 = add_cena2 * 100;var wynik = Math.round(add_cena2)/100;

return (wynik);}

<input name="add_cena" type="text" id="add_cena" size="10"  onKeyUp="licz(form1);zaokraglenie(add_cena2.value);"/>

<input name="add_cena2" type="text" class="tb2" id="add_cena2" value="0.00" size="10" />
harbii
a ja się znowu przypomnę o tej kropce

skoro już tak dużo Panow nam pomogli to może podpowie ktoś jak kod


  1. <script type="text/javascript">
  2.  
  3. function licz(aform){
  4.  
  5. aform.liczba.value = zaokraglenie(parseFloat(aform.ilosc.value) +
  6.  
  7. parseFloat(aform.cena.value));
  8. }
  9. function zaokraglenie(liczba) {
  10. liczba = liczba * 100;
  11. var wynik = Math.round(liczba)/100;
  12. return wynik;
  13. }
  14. <form action="a.php" name="xxx">
  15. <INPUT TYPE="text" NAME="ilosc" onKeyUp="licz(xxx);">
  16. <INPUT TYPE="text" NAME="cena" onKeyUp=" licz(xxx);">
  17. <INPUT TYPE="text" NAME="liczba">
  18.  
  19. </form>


przerobić aby można było wpisać przecinek (bo z przecinkiem nie liczy) ALBO aby samo zmieniało przecinek na kropkę - bo to też nie złe rozwiązanie

Jeszcze jedno

zaokrągla ładnie ale jak zrobić aby zaokrąglona suma wyglądała tak:

np 122,00

bo jest 122
cornholio666
  1. function zaokraglenie(liczba) {
  2. liczba = liczba * 100;
  3. var wynik = String(Math.round(liczba)/100);
  4. wynik = wynik.replace(".", ",");
  5. return wynik;
  6. }
harbii
chyba się źle zapytałem.

1 - Chodzi mi o to aby móc wpisywać kwoty z przecinkiem - bo jak wpiszę z przecinkiem to nie oblicza (a z kropką jest ok)

2 - jak zrobić aby zaokrąglona suma wyglądała ładnie - tak: np 122.00 bo jest 122



Temat z przecinkiem i kropką znowu stał się aktualny.
Macie jakiś pomysł?
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.