Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z wyświetlaniem (if)/formularz
Forum PHP.pl > Forum > Przedszkole
Drav
sprawa jest prosta, chciałbym, aby po wybraniu "a" wyświetlał się tekst "dobrze"

Napisałem taki skrypcik:

<form action="quiz.php" method="post" name="jak">
<checkbox name="jak">
<input type="checkbox" value="a" />A</checkbox>
<input type="checkbox" value="a" />A</checkbox>
<input type="checkbox" value="a" />A</checkbox>
<input name="Submit1" type="submit" value="submit" /></form>



<?
$jak=$_POST['jak'];
echo $jak;
if (jak == 'a') echo'<p>dobrze</p>';?>





I po wybraniu odpowiedniej pozycji nie wyświetla się. Co ciekawe próbowałem kilkarodzajów formularzy i tylko w polach typu "select" działa dobrze smile.gif
Ktoś może mi powiedzieć gdzie robię błąd? jest to mój 2 w życiu skrypt PHP więc proszę po mnie nie jechać, jeśli jest to coś oczywistego.
gulldarek
No coz, musisz jeszcze podszkolic sie z HTMLa, bowiem prawidlowy kod wygladalby nastepujaco:

  1. <form action="quiz.php" method="post" name="jak">
  2. <input type="checkbox" name="jak[]" value="a" />A
  3. <input type="checkbox" name="jak[]" value="b" />B
  4. <input type="checkbox" name="jak[]" value="c" />C
  5. <input name="Submit1" type="submit" value="submit" />
  6. </form>
insecure
To zamień:
Kod
if (jak == 'a') echo'<p>dobrze</p>';?>


Na:
Kod
if ($jak == 'a') echo'<p>dobrze</p>';?>
Drav
tak, tak z htmlem wiem, wkleiłem zły kod, prawidłowy wygląda tak:

<form action="quiz.php" method="post" name="jak">
<input type="checkbox" value="a" name="a" />A
<input type="checkbox" value="b" name="b"/>B
<input type="checkbox" value="c" name="c"/>C
<input name="Submit1" type="submit" value="submit" />
</form>


<?
$jak=$_POST['jak'];
echo $jak;
if (jak == 'a') echo'<p>dobrze</p>';?>

wszystko jest ok, tzn wyświetla się, ale zamaist tekstu który chce wyświetla "Array"
a po zmianie skryptu na:

<form action="quiz.php" method="post" name="jak">
<input type="checkbox" name="jak[]" value="a" />A
<input type="checkbox" name="jak[]" value="b" />B
<input type="checkbox" name="jak[]" value="c" />C
<input name="Submit1" type="submit" value="submit" />
</form>

<?
$jak=$_POST['jak'];
if ($jak == 'a') echo'a';?>

nic się nie wyświetla sad.gif(
E: Działa zamieniłem "==" na "="
gulldarek
No to tak jak mowi Insecure, powinno byc "$jak" zamiast "jak" w kodzie php. Poza tym $_POST['jak'] nigdy nie bedzie ustawione, poniewaz zadne z pol sie tak nie nazywa.

Jesli probujesz zrobic formularz quizu z mozliwoscia wyboru jednej odpowiedzi, to kod powinien wygladac nastepujaco:

  1. <form action="quiz.php" method="post">
  2. <input type="radio" value="a" name="jak" />A
  3. <input type="radio" value="b" name="jak"/>B
  4. <input type="radio" value="c" name="jak"/>C
  5. <input name="Submit1" type="submit" value="submit" />
  6. </form>


i kod php zostaje bez zmian, jesli zas chcesz zrobic mozliwosc wyboru kilku odpowiedzi, to kod html wyglada nastepujaco:

  1. <form action="quiz.php" method="post">
  2. <input type="checkbox" value="a" name="jak[]" />A
  3. <input type="checkbox" value="b" name="jak[]" />B
  4. <input type="checkbox" value="c" name="jak[]" />C
  5. <input name="Submit1" type="submit" value="submit" />
  6. </form>


a kod php powinien wtedy wygladac tak

  1. <?
  2. $jak=$_POST['jak'];
  3. if (in_array('a', $jak)) echo'<p>Wsrod wybranych odpowiedzi bylo "a"</p>';?>
Drav
Ok thx, mam jeszcze jedno pytanie co jest źle w tym skrypcie, że pokazuje bez względu an to co wybiore, że $a = 6

<?php $a = 1;?>
<?
if ($jak = 'a')
$a = 2; ?>
<?if ($jak = 'b')
$a = 4; ?>
<? if ($jak = 'c')
$a = 6; ?>
<?php echo $a;?>

probowałem tez w 1 skrypcie zamaist kolejnych if dawac elseif, z tym samym rezultatem.

link: http://swiatdiablo.hekko.pl/skrypty/quiz.php

Chciałbym zrobić skrypt z 3 pytaniami, każde ma 3 możliwe odp, za każda odp jest ileśtam pkt, i po odpowiedzi an wszystko i kliknięciu w Submit podlicza pkts i je pokazuje.
gulldarek
jeden znak = przypisuje wartosc do zmiennej, dwa == porownuja wartosc zmiennej z wartoscia po drugiej stronie. Poza tym nie musisz za kazdym razem otwierac i zamykac <?php ?>

  1. <?php
  2.  
  3. $a = 1;
  4.  
  5. if ($jak == 'a') {
  6. $a = 2;
  7. }
  8. else if ($jak == 'b') {
  9. $a = 4;
  10. }
  11. else if ($jak == 'c') {
  12. $a = 6;
  13. }
  14.  
  15. echo $a;
  16.  
  17. ?>
Drav
dalej to samo, zobacz sobie (link w poście powyżej) smile.gif
jakby co wygląda to teraz tak:
  1. <form action="quiz.php" method="post" name="jak">
  2. <input type="radio" name="jak" value="a" />A
  3. <input type="radio" name="jak" value="b" />B
  4. <input type="radio" name="jak" value="c" />C
  5. <input name="Submit1" type="submit" value="submit" />
  6. </form>
  7. <?php
  8. $a = 1;
  9.  
  10. if ($jak == 'a') {
  11. $a = 2;
  12. }
  13. else if ($jak == 'b') {
  14. $a = 4;
  15. }
  16. else if ($jak == 'c') {
  17. $a = 6;
  18. }
  19.  
  20. echo $a;
  21.  
  22. ?>
gulldarek
Napisalem:

  1. <input type="radio" value="a" name="jak" />A
  2. <input type="radio" value="b" name="jak" />B
  3. <input type="radio" value="c" name="jak" />C


a ty zrobiles:

  1. <input type="radio" value="a" name="jak[]" />A
  2. <input type="radio" value="b" name="jak[]" />B
  3. <input type="radio" value="c" name="jak[]" />C


Usun [] z nazw pol.
Drav
zmieniłem, dalej to samo smile.gif
gulldarek
Tak, bo gdzies w miedzyczasie usunales $jak = $_POST['jak'];

Podsumowujac, powinno to wygladac tak:

  1. <form action="quiz.php" method="post" name="jak">
  2. <input type="radio" name="jak" value="a" />A
  3. <input type="radio" name="jak" value="b" />B
  4. <input type="radio" name="jak" value="c" />C
  5. <input name="Submit1" type="submit" value="submit" />
  6. </form>
  7. <?php
  8. $jak = $_POST['jak'];
  9.  
  10. $a = 1;
  11.  
  12. if ($jak == 'a') {
  13. $a = 2;
  14. }
  15. else if ($jak == 'b') {
  16. $a = 4;
  17. }
  18. else if ($jak == 'c') {
  19. $a = 6;
  20. }
  21.  
  22. echo $a;
  23.  
  24. ?>
Drav
Wielkie dzięki, naprawdę smile.gif Dzięki Tobie nauczyłem się kilku przydatnych rzeczy smile.gif

Pozdrawiam i dziękuję za pomoc.
pkwiatkowski
Witam ja mam też problem z checkboxami ale trochę z innego beczki winksmiley.jpg
Mianowicie chciałbym aby z pol których wybrałem uruchomiał się odpowiednio skrypt pobierający dane z bazy tzn.

  1. <?php
  2. <form action="baza.php" method="post">
  3. <input type="checkbox" value="baza1" name="baza1" />BAZA 1
  4. <input type="checkbox" value="baza2" name="baza2" />BAZA 2
  5. <input type="checkbox" value="baza3" name="baza3" />BAZA 3
  6. <input name="Submit1" type="submit" value="Wyswietl" />
  7. </form>
  8. ?>


przykladowo zaznacze pola "BAZA 1" i "BAZA 3" i odpowiednie z kazdej z bazy sie wyswietlily dane z tabeli malo tego żeby wyniki się polaczyly.

I tak dla wszystkich kombinacji. Tzn że mam ifem sprawdzac kazda mozliwosc, czy da sie to jakos fajnie zrobic, jesli ktos nie zrozumial to prosze pytac.
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.