Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obliczanie liczb w formularzu
Forum PHP.pl > Forum > PHP
Robert93
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>
Michael2318
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. ?>
mortus
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ć.
Michael2318
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 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 smile.gif
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.