Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][HTML] Update pola DIV
Forum PHP.pl > Forum > Przedszkole
Kao
Witam
Już mam dosyć szukania ... jak to zrobić ... może mała podpowiedź co robię źle.
Mianowicie mam taki oto kod:
  1. <script language="JavaScript">
  2.  
  3. function pomnoz(mnozna, mnoznik, laminat, netto, brutto)
  4. {
  5. var netto, brutto = 0;
  6.  
  7. var mnozna = document.getElementById(mnozna).value;
  8. var mnoznik = document.getElementById(mnoznik).value;
  9.  
  10. if (document.getElementById(laminat).checked) laminat = 10;
  11. else laminat = 0;
  12.  
  13. var wynik = (parseInt(mnozna) * parseInt(mnoznik) * (32 + laminat))/10000;
  14.  
  15. var netto = Math.round(wynik*Math.pow(10,2))/Math.pow(10,2);
  16. document.getElementById(netto).innerHTML=netto;
  17.  
  18. var brutto = Math.round((netto*1.22)*Math.pow(10,2))/Math.pow(10,2);
  19. document.getElementById(brutto).innerHTML=brutto;
  20. }
  21.  
  22.  
  23. <b>--Kalkulator--</b><br>
  24. Proszę podać<br>
  25. szerokość: <input type="text" size="10" id="szer" onchange="pomnoz('szer', 'wys', 'lam', 'netto', 'brutto')" name="szer"> cm<br>
  26. wysokość: <input type="text" size="10" id="wys" onchange="pomnoz('szer', 'wys', 'lam', 'netto', 'brutto')" name="wys"> cm<br>
  27. Laminowanie: <input type="checkbox" id="lam" onclick="pomnoz('szer', 'wys', 'lam','netto', 'brutto')" name="lam"><br>
  28. Cena: <div id="netto" style="display: inline;">0</div> zł netto<br>
  29. Cena: <div id="brutto" style="display: inline;">0</div> zł brutto<br>


Proszę powiedzieć czemu nie aktualizuje pola div z ceną ?(mówię od razu że nie chcę mieć zamiast div pola INPUT exclamation.gif)
Ja już sił nie mam:<

Pozdr.
Kao
skowron-line
Zaglądałeś do konsoli błędów w FF. questionmark.gif
I teraz pytanie do Ciebie.
[JAVASCRIPT] pobierz, plaintext
  1. document.getElementById(netto).innerHTML=netto;
[JAVASCRIPT] pobierz, plaintext

Jak myślisz co to jest netto w nawiasach questionmark.gif Odpowiesz że id diva, niestety błąd. jest to zmienna którą ty chcesz przekazać jako parametr funkcji ale uwaga co się dzieje na początku.
[JAVASCRIPT] pobierz, plaintext
  1. function pomnoz(mnozna, mnoznik, laminat, netto, brutto)
  2. {
  3. var netto, brutto = 0;
[JAVASCRIPT] pobierz, plaintext

Odrazu ten parametr ustawiasz na wartość zero a takiego id już nie masz w swoim dokumencie.
Więc albo pozmieniasz sobie nazwy zmiennych na unikalne.
Albo
[JAVASCRIPT] pobierz, plaintext
  1. document.getElementById('netto').innerHTML=netto;
[JAVASCRIPT] pobierz, plaintext

z brutto jest to samo.
Kao
Witam
Zrobiłem tak jak mówisz, a nawet skróciłem, bo nie potrzebnie (chyba) przekazywałem "coś co mam tylko oddawać":
  1. <script language="JavaScript" type="text/javascript">
  2. function pomnoz(mnozna, mnoznik, laminat)
  3. {
  4. var mnozna = document.getElementById(mnozna).value;
  5. var mnoznik = document.getElementById(mnoznik).value;
  6.  
  7. if (document.getElementById(laminat).checked) laminat = 10;
  8. else laminat = 0;
  9.  
  10. var wynik = (parseInt(mnozna) * parseInt(mnoznik) * (32 + laminat))/10000;
  11.  
  12. var bezvat = Math.round(wynik*Math.pow(10,2))/Math.pow(10,2);
  13. document.getElementById(netto).innerHTML=bezvat;
  14.  
  15. var zvat = Math.round((bezvat*1.22)*Math.pow(10,2))/Math.pow(10,2);
  16. document.getElementById(brutto).innerHTML=zvat;
  17. }
  18.  
  19. <b>--Kalkulator--</b><br>
  20. Proszę podać<br>
  21. szerokość: <input type="text" size="10" id="szer" onchange="pomnoz('szer', 'wys', 'lam')" name="szer"> cm<br>
  22. wysokość: <input type="text" size="10" id="wys" onchange="pomnoz('szer', 'wys', 'lam')" name="wys"> cm<br>
  23.  
  24. Laminowanie: <input type="checkbox" id="lam" onclick="pomnoz('szer', 'wys', 'lam')" name="lam"><br>
  25.  
  26. Cena: <div id="netto" style="display: inline;">0</div> zł netto<br>
  27. Cena: <div id="brutto" style="display: inline;">0</div> zł brutto<br>


Ale i tak nie cyka!! Gubię się w tym! Chyba polegnę na tym skrypcie!

Proszę o podpowiedź.
Pozdr.

[edit]
znalazłem odpowiedź snitch.gif błąd tkwił w tym że ID zmiennej nie było w apostrofie '
Ale jazda:>
Poprawny skrypt to:
  1. <script language="JavaScript" type="text/javascript">
  2. function pomnoz(mnozna, mnoznik, laminat)
  3. {
  4. var mnozna = document.getElementById(mnozna).value;
  5. var mnoznik = document.getElementById(mnoznik).value;
  6.  
  7. if (document.getElementById(laminat).checked) laminat = 10;
  8. else laminat = 0;
  9.  
  10. var wynik = (parseInt(mnozna) * parseInt(mnoznik) * (32 + laminat))/10000;
  11.  
  12. var bezvat = Math.round(wynik*Math.pow(10,2))/Math.pow(10,2);
  13. document.getElementById('netto').innerHTML=bezvat;
  14.  
  15. var zvat = Math.round((bezvat*1.22)*Math.pow(10,2))/Math.pow(10,2);
  16. document.getElementById('brutto').innerHTML=zvat;
  17. }
  18.  
  19. <b>--Kalkulator--</b><br>
  20. Proszę podać<br>
  21. szerokość: <input type="text" size="10" id="szer" onchange="pomnoz('szer', 'wys', 'lam')" name="szer"> cm<br>
  22. wysokość: <input type="text" size="10" id="wys" onchange="pomnoz('szer', 'wys', 'lam')" name="wys"> cm<br>
  23.  
  24. Laminowanie: <input type="checkbox" id="lam" onclick="pomnoz('szer', 'wys', 'lam')" name="lam"><br>
  25.  
  26. Cena: <div id="netto" name="netto" style="display: inline;">0</div> zł netto<br>
  27. Cena: <div id="brutto" name="brutto" style="display: inline;">0</div> zł brutto<br>


Dzięki skowron-line

Pozdr.
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.