Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] checkbox + dodawanie-odejmowanie ceny
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
termin
Witam, siedzę już nad jedną rzeczą pół dnia i kompbinuję i jak narazie bez rezultatów. Otóż, chcę zrobić coś takiego, że mam na stronie wyświetloną cene produktu np: samochód: 100zł, do tego samochodu można dołożyć pozdespoły dodatkowe np. koła zapasowe: 50zł, amortyzatory: 30zł, antenę: 10zł - produktów dodatkowych moze być więcej, w zależności od rodzaju samochodu. Chcę aby na stronie była cena "razem do zapłaty", ale moze ona być zmieniana dynamicznie po zaznaczeniu jakiegoś checkbox-a w elementach dodatkowych. Czyli podsumowując: wchodze na strone to widać 100zł, ale zaznaczam checkbox przy kołach zapasowych, to cena automatycznie zmienia się na 150zł itd. Ktoś moze mnie naprowadzić jak to ugryźć?
vokiel
A kombinowałeś już coś sam? To pokaż, będzie nam łatwiej dry.gif

1. Do każdego checkboxa dodaj zdarzenie onclick które wywoła funkcje js
2. ta sprawdzi co zostalo klikniete, obliczy wartosc
3. wpisze (innerHTML) cene w odpowiedni element (p, span, div)
mike
"proste ale nie dla mnie" - co to za głupi tytuł wątku?
Proszę poprawić (wskazówki dot. formułowania tytułów są w Regulaminie forum) inaczej wątek pójdzie do kosza.
dassystem
Może komuś się kiedys przyda

  1.  
  2. <script type="text/javascript">
  3.  
  4. function licz()
  5. {
  6. var id_checkboxa=[];
  7. var cena=[];
  8. var suma=0;
  9. suma = parseFloat(suma);
  10.  
  11. id_checkboxa=document.getElementsByName("ch1");
  12. cena=document.getElementsByName("ch3");
  13.  
  14. for(var i=0;i<id_checkboxa.length ;i++)
  15. {
  16.  
  17. if(id_checkboxa[i].type=='checkbox' && id_checkboxa[i].checked==true)
  18. {
  19. cena_float = parseFloat(cena[i].value);
  20. suma = suma + cena_float;
  21. }
  22.  
  23. if (suma <0) {suma = 0;}
  24. if (i == id_checkboxa.length-1)
  25. {
  26. document.getElementById("wynik").value=suma;
  27. }
  28. }
  29.  
  30. }
  31.  
  32.  
  33. </head>
  34.  
  35. <form method='post' id='f1'>
  36.  
  37. <p><label>1</label><input type='checkbox' name="ch1" onclick="licz()" />
  38. <input type='hidden' name="ch3" value='10' /></p>
  39.  
  40. <p><label>2</label><input type='checkbox' name="ch1" onclick="licz()" />
  41. <input type='hidden' name="ch3" value='10' /></p>
  42.  
  43. <p><label>3</label><input type='checkbox' name="ch1" onclick="licz()" />
  44. <input type='hidden' name="ch3" value='10' /></p>
  45.  
  46. <p><label>4</label><input type='checkbox' name="ch1" onclick="licz()" />
  47. <input type='hidden' name="ch3" value='10' /></p>
  48.  
  49. <p><label>5</label><input type='checkbox' name="ch1" onclick="licz()" />
  50. <input type='hidden' name="ch3" value='10' /></p>
  51.  
  52.  
  53. <p><label>SUMA</label><input type='text' id="wynik" /></p>
  54. </form>
  55.  
  56. </body>
  57. </html>
DannyM
to moze powiecie mi jak prosto wykonac takie dzialanie?

  1. <p>liczba
  2. <input type="text" name="liczba" id="liczba" onchange="licz()"/>
  3. </p>
  4. <p>stala
  5. <input name="stala" type="text" id="stala" value="10" />
  6. </p>
  7. <p>wynik
  8. <input type="text" name="wynik" id="wynik" />
  9. </p>
  10. <script type="text/javascript">
  11.  
  12.  
  13. function licz(){
  14. var wynik = document.getElementById('liczba').value+document.getElementById('stala').value;
  15. document.getElementById('wynik').value=wynik;
  16. }

dodaje "liczba" do "stala" i suma jest w polu "wynik".
Wiele ludzi ma problemy z dodawaniem. Niby to proste ale dla mnie JS to zagadka smile.gif
Odejmowanie jest ok a z dodawaniem zawsze problem. Troche to dla mnie bez sensu bo skoro mozna bylo zrobic odejmowanie czemu nie dodawanie.
nexis
Bo + to również operator łączący ciągi tekstowe. Musisz to zrobić tak:
Kod
function licz() {
    var liczba  = parseInt(document.getElementById("liczba").value);
    var stala   = parseInt(document.getElementById("stala").value);
    var wynik   = document.getElementById("wynik");
    wynik.value = liczba + stala;
}
DannyM
Super o to chodziło. Dzięki za wyjaśnienie.
Chetnie klikne "Pomogł" ale nie dziala klawisz
rysiopych
A co muszę zmienić, żeby pole formularza było typu mieszanego:
np część pól typu radio, a część checkbox?
Chodzi mi o to, aby użytkownik najpierw wybrał grupę produktów, a potem spośród tej grupy produkt.
Np: konfigurator pizzy - najpierw wybieramy rozmiar a potem składniki (których cena jest zależna od wcześniej wybranej wielkości).
Proszę o pomoc. Próbowałem zmodyfikować skrypt, który napisał dassystem, ale nie osiągnąłem celu ;\
Pozdrawiam
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.