Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Obliczanie liczb w formularzu
Robert93
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 15.06.2009

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


Witam

Mam formularz, w którym są pola typu "radio" i "select". Chciałbym, aby po wybraniu odpowiednich wartości z obu pól, obliczało ich sumę (wartości "value").

  1. <select name="ilosc" >
  2. <option selected="selected" value="12">1 sztuka </option>
  3. <option value="24">2 sztuki </option>
  4. <option value="36">3 sztuki </option>
  5. </select>
  6. <br>
  7.  
  8. <input type="radio" name="liczba" value="6";/>pierwsza opcja<br>
  9. <input type="radio" name="liczba" value="7";/>druga opcja<br>
  10. <input type="radio" name="liczba" value="8";/>trzecia opcja<br>
Go to the top of the page
+Quote Post
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


nazwy zapisujesz jako tablicę, czyli nie name="liczba" tylko name="liczba[]" i lecisz foreach'em. Co do select to w select'cie można wybrać chyba tylko jedną opcję, więc nie widzę problemu.

  1. <select name="ilosc" >
  2. <option selected="selected" value="12">1 sztuka </option>
  3. <option value="24">2 sztuki </option>
  4. <option value="36">3 sztuki </option>
  5. <br>
  6.  
  7. <input type="radio" name="liczba[]" value="6";/>pierwsza opcja<br>
  8. <input type="radio" name="liczba[]" value="7";/>druga opcja<br>
  9. <input type="radio" name="liczba[]" value="8";/>trzecia opcja<br>


  1. <?php
  2. $liczba_z_select = intval($_POST['ilosc']);
  3.  
  4. $liczymy = 0;
  5. for( $_POST['liczba'] AS $liczba_z_radio )
  6. {
  7. if ( empty($_POST['liczba']) )
  8. {
  9. continue;
  10. }
  11. $liczymy = $liczymy + intval($liczba_z_radio);
  12. }
  13.  
  14. $wynik = $liczymy + $liczba_z_select;
  15. echo $wynik;
  16. ?>
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Po co ta zmienna tablicowa? Przecież nie ma możliwości wybrania kilku pól typu radio o takiej samej nazwie i użycie w tym przypadku tablicy mija się z celem. Wystarczy po prosu:
  1. $ilosc = !empty($_POST['ilosc']) ? $_POST['ilosc'] : 0;
  2. $liczba = !empty($_POST['liczba']) ? $_POST['liczba'] : 0;
  3. $suma = $ilosc + $liczba;


@Michael2318: To raczej spośród pól typu radio można wybrać tylko jedną opcję. Pole typu select może posiadać atrybut multiple, który pozwala na wybór większej liczby wartości i to trzeba już inaczej obsłużyć.

Ten post edytował mortus 10.03.2013, 11:05:14
Go to the top of the page
+Quote Post
Michael2318
post
Post #4





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Cytat
Po co ta zmienna tablicowa? Przecież nie ma możliwości wybrania kilku pól typu radio o takiej samej nazwie i użycie w tym przypadku tablicy mija się z celem. Wystarczy po prosu:


Fakt, mój błąd. Pomyliłem z typem RADIO, może dlatego iż takie zwyczajne obliczanie ($zmienna + $zmienna) to podstawy podstaw i raczej z tym nie ma problemu (IMG:style_emoticons/default/smile.gif)

Cytat
@Michael2318: To raczej spośród pól typu radio można wybrać tylko jedną opcję. Pole typu select może posiadać atrybut multiple, który pozwala na wybór większej liczby wartości i to trzeba już inaczej obsłużyć.


no właśnie, może ale nie musi. Nie wiem co autor miał na myśli (IMG:style_emoticons/default/smile.gif)

Ten post edytował Michael2318 10.03.2013, 14:29:50
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 6.10.2025 - 10:25