Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Non stop zwraca true
Forum PHP.pl > Forum > Przedszkole
Matthewcode
Piszę kod i chcę zrobić tak:
Odpowiedź a = prawdziwa
Odpowiedź b = fałszywa

  1. <?
  2. $a = 'string';
  3. $b = 0;
  4.  
  5. if ( $a == true && $b == false && $a == $b )
  6.  
  7. if ($b) {
  8. echo ( 'zla odpowiedz' );
  9. }
  10. ?>
  11. <form action="test.php" method="post">
  12. Czy jez kuje?<input type="radio" name="a" /> <br />
  13. Czy ryba lata?<input type="radio" name="b"/> <br />
  14. <input type="submit" name="ok" value="Odpowiedz!">
  15. </form>


Wartości true / false patrzyłem na internecie.
Co w tym kodzie jest nie tak?
Po wybraniu Odpowiedzi "Czy jeż kuje" - true. Po wybraniu "Czy ryba lata" - true, a powinno być false.

Proszę o ewentualne poprawienie.
Dominator
Przecież Ty żadnych danych nie przekazujesz.
Matthewcode
Przedszkole.. ;d
To jak je "przekazywać" ?
Myślałem tak: zrobi się inputy z "name="a/b""
Do tego zrobi się zmienne z true / false = a / b

Jak zaznaczy input z name "a" to zwróci mu true, a jak "b" to false.
Najwyżej źle myślałem closedeyes.gif
hyhyhy
Żeby móc stwierdzić, czy coś jest prawdą, czy fałszem, musisz najpierw zadać pytanie smile.gif

Ty nadajesz a wartość zero, po czym pytasz czy "a" (czy zero?) - to nie ma sensu.
Potrzebowałbyś jakiejś funkcji zwracającej false/true - np.

  1. function isEqualToZero($liczba)
  2. {
  3. if ($liczba == 0)
  4. {
  5. return true;
  6. }else{
  7. return false;
  8. }
  9. }
  10.  
  11. //i wtedy warunek wygląda
  12.  
  13. if (isEqualToZero($liczba) == true) {instrukcja}
  14.  
  15. a nawet prostszy, a tożsamy zapis to if (isEqualToZero) {instrukcja}


Jeżeli nie do końca rozumiesz ten przykład, to poszukaj jakiegoś kursu - bo niestety, ale to są absolutne podstawy smile.gif
Dominator
  1. <?
  2. $a = $_POST["a"];
  3. $b = $_POST["b"];
  4.  
  5. if ( $a == true && $b == false && $a == $b )
  6.  
  7. if ($b) {
  8. echo ( 'zla odpowiedz' );
  9. }
  10. ?>
  11. <form action="test.php" method="post">
  12. Czy jez kuje?<input type="radio" name="a" /> <br />
  13. Czy ryba lata?<input type="radio" name="b"/> <br />
  14. <input type="submit" name="ok" value="Odpowiedz!">
  15. </form>


Nie sprawdzałem, lecz powinno działać wink.gif
Rysh
Cytat(Dominator @ 27.03.2012, 23:40:28 ) *
  1. <?
  2. $a = $_POST["a"];
  3. $b = $_POST["b"];
  4.  
  5. if ( $a == true && $b == false && $a == $b )
  6.  
  7. if ($b) {
  8. echo ( 'zla odpowiedz' );
  9. }
  10. ?>
  11. <form action="test.php" method="post">
  12. Czy jez kuje?<input type="radio" name="a" /> <br />
  13. Czy ryba lata?<input type="radio" name="b"/> <br />
  14. <input type="submit" name="ok" value="Odpowiedz!">
  15. </form>


Nie sprawdzałem, lecz powinno działać wink.gif

Na pewno nie zadziała, bo nigdy warunek $a == $b nie będzie spełniony.
Matthewcode
A z tym false to na jaki temat czytać? tongue.gif
Rysh
Cytat(Matthewcode @ 28.03.2012, 18:03:18 ) *
A z tym false to na jaki temat czytać? tongue.gif

Popatrz na swój genialny warunek:
  1. if ( $a == true && $b == false && $a == $b )

Jak możesz dać tam wszędzie AND? snitch.gif
Przecież jak $a jest prawdą i $b jest fałszem, to jak może dojść do sytuacji że $a jest równe $b? Ten if się NIGDY nie wykona.
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.