Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [html/JS] Problem z formularzem
TomaszW
post 21.03.2009, 18:11:09
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


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);
}
Powód edycji: [erix] na przyszłość używaj bbcode
Go to the top of the page
+Quote Post
erix
post 21.03.2009, 18:38:30
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
TomaszW
post 21.03.2009, 18:52:39
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


tzn jak dokładnie z tym split? możesz podac jakis przykład tak bedzie latwiej ja nieco zielony jestem. Pozdrawiam
Go to the top of the page
+Quote Post
erix
post 21.03.2009, 19:14:11
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




http://lmgtfy.com/?q=javascript+split


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
TomaszW
post 21.03.2009, 19:45:20
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


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.

Ten post edytował TomaszW 21.03.2009, 19:45:48
Go to the top of the page
+Quote Post
erix
post 21.03.2009, 20:23:58
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
TomaszW
post 21.03.2009, 20:58:32
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


Bardzo fajnie napisane ale dla kogoś prawie ze zielonego te słowa na prawde nic nie daja... hmm może jakoś bardziej naprowadzisz?
Go to the top of the page
+Quote Post
erix
post 21.03.2009, 21:29:38
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
TomaszW
post 21.03.2009, 21:34:03
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 16.03.2009

Ostrzeżenie: (0%)
-----


wielkie dzieki pozdrawiam serdecznie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 9.07.2025 - 02:56