![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 5.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam problem chciałbym dodać wartości pól formularza a następnie wstawić je do jednego z pól którego nie dodaje.
Moje wypociny to: Kod <script type="text/javascript"> function zlicz() { var last = document.getElementById(last.value); var subiekt = document.getElementById(subiekt.value); var caffe = document.getElementById(caffe.value); var serwis = document.getElementById(serwis.value); var abonament = document.getElementById(abonament.value); var zwroty = document.getElementById(zwroty.value); var pobrania = document.getElementById(pobrania.value); var suma = last + subiekt + caffe + serwis + abonamenty + zwroty - pobrania; document.getElementById(suma.value) = suma; } </script> <table border="0"><form action="./?show=rozliczenia&action=rozliczenie&step=1" method="POST"> <tr><td>Dzień</td><td>'. $data .'</td></tr> <tr><td width="220px">Siedziba</td><td width="260px"><input type="hidden" name="stacja" value="'. $this->id .'" />'. $this->name .'</td></tr> <tr><td>Poprzednie saldo</td><td><input type="text" name="last" id="last" value="'. $datab[amounts] .'" readonly />PLN</td></tr> <tr></tr><tr><td><b>Sprzedaż</b></td></tr> <tr><td>Subiekt <small>sprzedaż musibyć równa paragonowi</small></td><td><input type="text" id="subiekt" name="subiekt" onChange="zlicz()" />PLN</td></tr> <tr><td>Caffe <small>caffe, ksero, wydruki</small></td><td><input type="text" id="caffe" name="caffe" onChange="zlicz()" />PLN</td></tr> <tr><td>Serwis <small>naprawy serwisowe</small></td><td><input type="text" id="serwis" name="serwis" onChange="zlicz()" />PLN</td></tr> <tr><td>Abonamenty internetowe</td><td><input type="text" id="abonament" name="abonament" onChange="zlicz()" />PLN</td></tr> <tr><td>Zwroty do kasy <small>Zaliczki na komputery,zwroty pobrań</small></td><td><input type="text" id="zwroty" name="zwroty" onChange="zlicz()" />PLN</td></tr> <tr><td>Pobrania z kasy <small>Wszelkie wypłaty z kasy</small></td><td><input type="text" id="pobrania" name="pobrania" onChange="zlicz()" />PLN</td></tr> <tr><td>Uwagi</td><td><textarea name="uwagi"></textarea></td></tr> <tr><td>Podliczenia końcowe</td></tr> <tr><td>W kasie powinno być</td><td><input type="text" name="suma" id="suma" readonly></td></tr> <tr><td>W kasie jest</td><td><input type="text" name="taking"></td></tr> <tr></tr><tr><td><input type="submit" value="Dodaj roliczenie" /></td></tr> </form></table> Z góry dzięki za pomoc. Pozdrawaniam Crop -------------------- Prosty CMS a raczej CMf (zabawa z php)
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 611 Pomógł: 19 Dołączył: 28.02.2005 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
masz błąd:
analogicznie z resztą, podobnie wpisywanie wartości do inputa -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 5.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Teraz kod JS wygląda tak:
Kod <script type="text/javascript"> function zlicz() { var last = document.getElementById("last").value; var subiekt = document.getElementById("subiekt").value; var caffe = document.getElementById("caffe").value; var serwis = document.getElementById("serwis").value; var abonament = document.getElementById("abonament").value; var zwroty = document.getElementById("zwroty").value; var pobrania = document.getElementById("pobrania").value; var suma = last + subiekt + caffe + serwis + abonamenty + zwroty - pobrania; document.getElementById("suma").value = suma; } </script> Jednak Ciągle nie działa:( Jednak mimo wszystko dziękuje. Ten post edytował Crop 1.12.2007, 21:37:26 -------------------- Prosty CMS a raczej CMf (zabawa z php)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 611 Pomógł: 19 Dołączył: 28.02.2005 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
po
1) zaisntaluj sobie wtyczke firebug masz tam debuger javascriptu 2) Operator + jest przeciążony 3) nie działa bo typ danych pobierany z form jest string nie int czy float. 4) Musisz najpierw zrzutowac typ poznaj metode Integer.parseInt -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 5.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
OK0 z tym pierwszym kodem już się nie bawie znalazłem coś co działa ale wynik dodawania 12 + 11 = 1211
Oto Kod: Kod <script type="text/javascript">
function zlicz() { document.form.suma.value = document.form.last.value + document.form.subiekt.value + document.form.caffe.value; } </script> -------------------- Prosty CMS a raczej CMf (zabawa z php)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 43 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Błędy, które zauważyłem:
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 1 Dołączył: 8.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
czytaj ze zrozumieniem co miales wczesniej napisane "Musisz najpierw zrzutowac typ poznaj metode Integer.parseInt"
w Twoim przypadku wynik jest jak najbardziej prawidlowy, nastepuje konkatencja stringow ... zebys mial porzadany efekt to kazda wartosc jeszcze zrzutuj ze stringa to inta ... parseInt(document.....value) + parseInt(document.....value) ... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 5.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Czytam ze zrozumieniem...
Gdy zrobiłem wszystko tak jak powiedzieliście to w wyniku otzymuje NaN'a (Not a Number) -------------------- Prosty CMS a raczej CMf (zabawa z php)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 158 Pomógł: 43 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
OK, napisałem odpowiednie funkcje. Wynik powinien być poprawny przy założeniu, że ten formularz jest pierwszym formularzem na tej stronie, jeżeli nie, to zmień pierwszy wiersz w funkcji 'zlicz'. Możesz również usunąć wszystkie identyfikatory z HTML, gdyż w funkcji wykorzystuję tylko nazwy pól
Kod // zwraca liczbę rzeczywistą lub 0
function float_val(v) { v = parseFloat(String(v).replace(',', '.')) return isNaN(v) ? 0 : v } function zlicz(e) { var f=document.forms[0] f.suma.value = float_val(f.last.value) + float_val(f.subiekt.value) + float_val(f.caffe.value) + float_val(f.serwis.value) + float_val(f.abonament.value) + float_val(f.zwroty.value) - float_val(f.pobrania.value) } |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 17:36 |