Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Radio button - mały problem
Forum PHP.pl > Forum > Przedszkole
MFIPETER
Mam pewien formularz w HTML, który przesyła dane do jakiegoś tam pliku. Są dwie opcje radio. I teraz chciałbym zrobić tak że jeśli zaznaczona jest pierwsza opcja to skrypt wykonuje $db -> Execute("UPDATE polecenie1"). A jeśli zaznaczy się drugi radio to ten sam skrypt wykona $db -> Execute("UPDATE polecenie2). Proszę o pomoc.
nowotny
  1. <?php
  2. echo'<form action="" method=POST>
  3. <input type="radio" name="przycisk" value="a">a<br>
  4. <input type="radio" name="przycisk" value="b">b<br>
  5. <input type="submit" value="go">';
  6.  
  7. if(!empty($_POST)){
  8. if($_POST['przycisk']=='a'){
  9. //wybrano opcję a
  10. }
  11. elseif($_POST['przycisk']=='b'){
  12. //wybrano opcję b
  13. }
  14. else{
  15. //nie wybrano zadnej opcji
  16. }
  17.  
  18. }
  19. ?>

Dalej chyba sobie poradzisz...
Daimos
  1. <?php
  2. if($_POST['radiojakis']==1){
  3. // gdy zaznaczony radio o value=1, mozesz wpisac value xyz, ale wtedy bedzie $_POS
    T['radiojakis']=='xyz'
  4. }
  5. else{
  6. // w przeciwnym wypadku
  7. }
  8. ?>
MFIPETER
  1. <?php
  2. $title = "Łazienka";
  3. require_once("includes/".$player -> lang."/head.php");
  4. require_once("languages/".$player -> lang."/Lazienka.php");
  5. if(empty($_POST)){
  6. ERROR (ERROR3);
  7. }
  8. if(!empty($_POST)){
  9.  if($_POST['przycisk']=='Wykapsie'){
  10. if($mycie="Y"){
  11. ERROR (ERROR);
  12. }
  13. $umyj="Y";
  14. $db -> Execute("UPDATE players SET mycie='".$umyj."' WHERE id=".$player -> id);
  15. ?><html><center><b>Wykąpałeś się dzięki czemu jesteś czysty i pachnący !</b></center></html><?php
  16. }
  17. elseif($_POST['przycisk']=='Umyjzeby'){
  18. if($zeby="Y"){
  19. ERROR (ERROR1);
  20. }
  21. $umyj="Y";
  22. $db -> Execute("UPDATE players SET zeby='".$umyj."' WHERE id=".$player -> id);
  23. ?><html><center>Umyłeś Zęby !</html><?php
  24. }
  25. elseif($_POST['przycisk']=='Umyjwlosy'){
  26. if($wlosy="Y"){
  27. ERROR (ERROR2);
  28. }
  29. $umyj="Y";
  30. $db -> Execute("UPDATE players SET wlosy='".$umyj."' WHERE id=".$player -> id);
  31. ?><html><center><b>Umyłeś sobie włosy !</b></center></html><?php
  32. }
  33. }
  34. require_once("includes/foot.php");
  35. ?>


Czy ktoś mi może powiedzieć co tu jest źle ?
Zepco
Być może problem jest z polskimi literkami. Lepiej przypisuj im value bez ogonków i spacji.
MFIPETER
Nie pomogło sad.gif Skrypt powinien w zależności od tego który radio button został wybrany odpowiednio edytować wpis w bazie danych, oraz powinien pojawić się komunikat, niestety nic takiego się nie dzieje.

Hmm teraz wyświetla tylko treść ERRORÓW jak użyję formularza :/
nowotny
Cytat(MFIPETER @ 5.02.2008, 09:35:53 ) *
Czy ktoś mi może powiedzieć co tu jest źle ?


Ale co się dzieje...? albo co się nie dzieje a powinno...? winksmiley.jpg

BTW... nie używaj polskich znaków w nazwach plików:
  1. <?php
  2. require_once("languages/".$player -> lang."/Łazienka.php")
  3. ?>


Nie używaj spacji ani polskich znaków w polach "value" formularzy...
MFIPETER
Cytat(nowotny @ 5.02.2008, 21:33:33 ) *
Ale co się dzieje...? albo co się nie dzieje a powinno...? winksmiley.jpg

BTW... nie używaj polskich znaków w nazwach plików:
  1. <?php
  2. require_once(&#092;"languages/\".$player -> lang.\"/Łazienka.php\")
  3. ?>


Nie używaj spacji ani polskich znaków w polach "value" formularzy...


To też nie pomogło :/
nowotny
Cytat(MFIPETER @ 5.02.2008, 21:55:55 ) *
To też nie pomogło :/

Nie miało... dalej nie wiemy co się (nie)dzieje... widzę że mamy sobie powróżyć z fusów... :/
MFIPETER
No więc w skrypcie ma zostać wykonane polecenie do bazy danych zależnie od tego który radio button się zaznaczyło, ale problem jest taki że pojawiają się tylko te ERRORY, a sprawdzałem w bazie danych i żadne za tych trzech pól nie jest równe Y.
nowotny
To:
  1. <?php
  2. if($mycie="Y"){
  3. if($zeby="Y"){
  4. if($wlosy="Y"){
  5. ?>


...powinno być tak:
  1. <?php
  2. if($mycie=="Y"){
  3. if($zeby=="Y"){
  4. if($wlosy=="Y"){
  5. ?>


inaczej zawsze zwraca TRUE i warunek się wykonuje... W ogóle skąd ty te zmienne bierzesz...?
MFIPETER
Cytat(nowotny @ 5.02.2008, 22:11:04 ) *
To:
  1. <?php
  2. if($mycie=="Y"){
  3. if($zeby=="Y"){
  4. if($wlosy=="Y"){
  5. ?>


...powinno być tak:
  1. <?php
  2. if($mycie=="Y"){
  3. if($zeby=="Y"){
  4. if($wlosy=="Y"){
  5. ?>


inaczej zawsze zwraca TRUE i warunek się wykonuje... W ogóle skąd ty te zmienne bierzesz...?


Niby jest dobrze, ale teraz ERRORA nie wyświetla :/ Zmienne były w poprzednim pliku w Formularzu - Z nimi jest na pewno wszystko ok. Więc jak pomoże mi ktoś ?
nowotny
Cytat(MFIPETER @ 5.02.2008, 22:20:18 ) *
Niby jest dobrze, ale teraz ERRORA nie wyświetla :/

To chyba dobrze, nie...? :/
MFIPETER
No bo chodzi o to że jeśli na przykład wlosy są równe Y to wtedy wyświetla się treść ERRORA :

  1. <?php
  2. if($_POST['przycisk']=='Umyjwlosy'){
  3. if($wlosy="Y"){
  4. ERROR (ERROR2);
  5. }
  6. ?>
nowotny
Daj sobie mysql_error na wszystkie zapytania:
  1. <?php
  2. echo mysql_error($db -> Execute("UPDATE players SET mycie='".$umyj."' WHERE id=".$player -> id));
  3. echo mysql_error($db -> Execute("UPDATE players SET zeby='".$umyj."' WHERE id=".$player -> id));
  4. echo mysql_error($db -> Execute("UPDATE players SET wlosy='".$umyj."' WHERE id=".$player -> id));
  5. ?>
MFIPETER
Hmm dalej nie pokazuje tego ERRORA. Tak jakby omijał w ogóle omijał tego ifa.
nowotny
Ehhh... no to sprawdź co jest w tych zmiennych... :/
MFIPETER
Rozumiem że chodzi o te ERRORY ?
Jeśli tak to mam taki plik :

  1. <?php
  2. define("ERROR", "<b><center>Nie potrzebujesz mycia ! (<a href=\"Lazienka.php\">wróć</a>)</b></center>");
  3. define("ERROR1", "<b><center>Masz czyste zęby ! (<a href=\"Lazienka.php\">wróć</a>)</b></center>");
  4. define("ERROR2", "<b><center>Myłeś już dzisiaj włosy ! (<a href=\"Lazienka.php\">wróć</a>)</b></center>");
  5. define("ERROR3", "<b><center>Nic nie zaznaczyłeś ! (<a href=\"Lazienka.php\">wróć</a>)</b></center>");
  6. ?>
nowotny
No to ja nie wiem... kombinuj, sprawdzaj, próbuj... :/
MFIPETER
Rozumiem. W każdym razie wielkie dzięki za poświęcony czas i dobre chęci. Jak mi się uda to dam na Forum.
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.