Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wartosc zalezna od przycisku radio
Forum PHP.pl > Forum > Przedszkole
gosienkami
witam, czy mozeci mi podpowiedziec co jest nie tak? mam 3 przyciski radio jezeli wybiore 1 powinien wyśwtelac mi cene wpłaty jednorazowej, jezeli 2 powinien wyswietlic połowe ceny, jezli 3 1/4 ceny, niestety ceny mimo wyboru 1 czy 2 radioprzysku zawsze wyswietla mi 1/4 ceny czyli 3 ostatnia opcje
  1. <? 
  2. if(isset($_POST["raty"])) {
  3. if($_POST["raty"] == "1" )
  4. $dozaplaty = $_POST['cenaj'];
  5. $podzial1 =$dozaplaty;
  6. $podzial=$dozaplaty;
  7. }
  8. if($_POST["raty"] == "2")
  9. $dozaplaty = $_POST['cena5'];
  10. $podzial2=$_POST['cena5']/2;
  11. $podzial=$podzial2;
  12.  
  13.  if($_POST["raty"] == "3") 
  14. $dozaplaty = $_POST['cenacztery'];
  15. $podzial3=$_POST['cenacztery']/4;
  16. $podzial=$podzial3;
  17.  
  18.  
  19. echo round($dozaplaty); //do zapłaty całosc
  20. echo 'rata'.$podzial;//do zapłaty 1 lub 1/2 lub 1/4 ceny
  21. ?>
best-two
Może o to chodzi:

Użyłem tutaj zmiennych $_GET aby było łatwiej przy spr.

  1. <?php
  2. if(isset($_GET["raty"])) {
  3.  if($_GET["raty"] == &#092;"1\" ){
  4.  $dozaplaty = $_GET['cena'];
  5.  $podzial1 =$dozaplaty;
  6.  $podzial=$dozaplaty;
  7.  }
  8.  if($_GET["raty"] == &#092;"2\"){
  9.  $dozaplaty = $_GET['cena'];
  10.  $podzial2=$dozaplaty/2;
  11.  $podzial=$podzial2;
  12.  }
  13. if($_GET["raty"] == &#092;"3\") {
  14.  $dozaplaty = $_GET['cena'];
  15.  $podzial3=$dozaplaty/4;
  16.  $podzial=$podzial3;
  17.  }
  18.  }
  19.  
  20.  echo round($dozaplaty); //do zapłaty całosc
  21.  echo 'rata'.$podzial;//do zapłaty 1 lub 1/2 lub 1/4 ceny
  22.  ?>


Wywołanie: http://adresnaszejstrony.pl/xxx.php?raty=3&cena=234
gosienkami
nie o to bo nie wiem dlaczego mi cene całosciowa wyswietla ok, natomiAST rate mimo wyboru 1,2,3 przycisku zawsze wstawia mi podział ostatni czyli 4 raty
best-two
Możliwe ze problem nie leży po stronie powyższego kodu. Jak można zauważyć po wywołaniu przez GET zmiennej rata 1,2 lub 3 wykonuje się odpowiednie 1, 2 lub 3 funkcja warunkowa.

Pokaż kod formularza!
qpanas
I to powinno być pierwsze - kod formularza. A poza tym dlaczego dajesz trzy instrukcje if. Czy nie lepiej skorzystać ze switch?

OK - nie wiem czy o to Ci chodziło, ale spłodziłem taki kawałek kodu - formularz plus skrypt do jego obsługi - wszystko w jednym pliku.
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4. <meta http-equiv="content-type" content="text/html;charset=utf-8" />
  5. <title>Raty - test</title>
  6. </head>
  7.  
  8. <div id="raty">
  9. <form action="index.php" method="post" enctype="application/x-www-form-urlencoded">
  10. <p><input type="radio" name="raty" value="1" />Cena: 100%</p>
  11. <p><input type="radio" name="raty" value="2" />Cena: 50%</p>
  12. <p><input type="radio" name="raty" value="4" />Cena: 25%</p>
  13. <input type="submit" value="Zatwierdź" />
  14. </form>
  15. </div>

  1. <?php
  2. $_raty = $_POST['raty'];
  3. $_cena = 10; # Tu wpisz cene lub zrodło, z ktorego przypisana będzie ta dana do zmiennej - dla przykładu daje 10
  4.  
  5. if(isset($_raty)) {
  6. switch($_raty) {
  7. case '1':
  8. echo('Kwota do zapłaty wynosi: '.$_cena.'zł');
  9. break;
  10. case '2':
  11. $_dozaplaty = $_cena / 2;
  12. echo('Rata stanowi połowę ceny jednostkowej towaru i wynosi: '.$_dozaplaty.'zł');
  13. break;
  14. case '4':
  15. $_dozaplaty = $_cena / 4;
  16. echo('Rata stanowi 1/4 ceny jednostkowej towaru i wynosi: '.$_dozaplaty.'zł');
  17. break;
  18. default:
  19. echo('ERROR'); # Tu zdefiniuj sobie jakiś komunikat o błędzie
  20. break;
  21. }
  22.  }
  23. else {
  24. echo('Wybierz cene');
  25. }
  26. ?>

  1. </body>
  2. </html>
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.