Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [html/JS] Problem z formularzem
Forum PHP.pl > Forum > Przedszkole
TomaszW
Witam

Mam problem z formularzem. Mianowicie chodzi o to, że w value mam podaną cenę, która dzięki JS pokazuje mi się w polu tekstowym i jest sumowana jeżeli zaznaczymy kilka pól. Gdy robię formularz na checkboxach jest wszystko dobrze ale chciałbym to zrobić na radio w końcu to formularz wyboru jednej z kilku opcji. CHodzi dokładnie o formularz, w którym wybieramy podzespoły jakie chcemy mieć w komputerze. Aby móc wybrac jedno z kilku w radio parametr name musi być taki sam. Ja w parametrze name mam nazwę podzespołu więc nie moga sie wszystkie tam samo nazywać. Nie wiem jak to zrobić na tym radio, żeby można było wybierać.

  1. <form id="form1" name="form1" method="post" action="">
  2. <p>
  3. <input type="radio" name="nazwa karta graficzna1" value="10.00" id="produkt1" onclick="UpdateCost()" />
  4. Radio</label>
  5. <br />
  6. <input type="radio" name="nazwa karta graficzna2" value="20.00" id="produkt2" onclick="UpdateCost()" />
  7. Radio</label>
  8. </p>
  9. <p>
  10. <input type="radio" name=" nazwa procesor1" value="10.00" id="produkt3" onclick="UpdateCost()" />
  11. Radio</label>
  12. <br />
  13. <input type="radio" name="nazwa procesor2" value="20.00" id="produkt4" onclick="UpdateCost()" />
  14. Radio</label>
  15. <br />
  16. </p>
  17. </form>



Funkcja JS aktualizująca cenę.

Kod
function UpdateCost() {
  var sum = 0;
  var gn, elem;
  for (i=0; i<25; i++) {
    gn = 'produkt'+i;
    elem = document.getElementById(gn);
    if (elem.checked == true) { sum += Number(elem.value); }
  }
  document.getElementById('totalcost').value = sum.toFixed(2);
}
erix
Cytat
Nie wiem jak to zrobić na tym radio, żeby można było wybierać.

Zrób wspólne name. A kilka wartości w value zapisuj w formacie aa|bb, potem użyj split.
TomaszW
tzn jak dokładnie z tym split? możesz podac jakis przykład tak bedzie latwiej ja nieco zielony jestem. Pozdrawiam
erix
http://lmgtfy.com/?q=javascript+split
TomaszW
Ok coś już mam...
  1. var myString = "elem.value"; ///poniewaz chcę edytować parametr value będzie w value np. nazwa,cena
  2. var mySplitResult = myString.split(",");
  3. document.write( + mySplitResult[1]);


tyko jak to podczepić pod:
  1. function UpdateCost() {
  2. var sum = 0;
  3. var gn, elem;
  4. for (i=0; i<25; i++) {
  5. gn = 'game'+i;
  6. elem = document.getElementById(gn);
  7. if (elem.checked == true) { sum += Number(elem.value); }
  8. }
  9. document.getElementById('totalcost').value = sum.toFixed(2);
  10. }


Słaby jestem z tego... więc proszę o pomoc.
erix
Cytat
sum += Number(elem.value);

Z value przypisujesz jakiejś zmiennej w tej pętli. Korzystasz z parseInt, jako argument np. pierwszy element tablicy zwróconej przez split.
TomaszW
Bardzo fajnie napisane ale dla kogoś prawie ze zielonego te słowa na prawde nic nie daja... hmm może jakoś bardziej naprowadzisz?
erix
  1. <input type="radio" name="nazwa" value="20.00|procesor2" id="produkt4" onclick="UpdateCost()" />

:
  1. <?php
  2. var data = document.getElementById('produkt4').value;   // przykładowe odwołanie do radio; może być inne - data przechowuje po prostu wartość z value
  3. data = data.split('|');    // kroi nożem wg linii;)
  4.  
  5. //data[0] - 20.00
  6. //data[1] - procesor2
  7.  
  8. //żeby było prawidłowo traktowane 20.00 jako liczba:
  9. liczba = parseFloat(data[0]);
  10. //i możesz sobie dodawać, jak chcesz
  11. ?>
TomaszW
wielkie dzieki pozdrawiam serdecznie
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.