Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z wyświetlaniem (if)/formularz
Drav
post 2.05.2009, 16:28:02
Post #1





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 14.09.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Drav 2.05.2009, 16:29:43


--------------------
XHTML | CSS | PHP (Uczę się :D)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
gulldarek
post 2.05.2009, 16:34:52
Post #2





Grupa: Zarejestrowani
Postów: 156
Pomógł: 15
Dołączył: 13.09.2003
Skąd: London

Ostrzeżenie: (0%)
-----


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>
Go to the top of the page
+Quote Post
insecure
post 2.05.2009, 16:34:56
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 1
Dołączył: 2.05.2009

Ostrzeżenie: (0%)
-----


To zamień:
Kod
if (jak == 'a') echo'<p>dobrze</p>';?>


Na:
Kod
if ($jak == 'a') echo'<p>dobrze</p>';?>
Go to the top of the page
+Quote Post
Drav
post 2.05.2009, 16:41:45
Post #4





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 14.09.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


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 "="

Ten post edytował Drav 2.05.2009, 16:46:45


--------------------
XHTML | CSS | PHP (Uczę się :D)
Go to the top of the page
+Quote Post
gulldarek
post 2.05.2009, 16:45:34
Post #5





Grupa: Zarejestrowani
Postów: 156
Pomógł: 15
Dołączył: 13.09.2003
Skąd: London

Ostrzeżenie: (0%)
-----


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>';?>
Go to the top of the page
+Quote Post
Drav
post 2.05.2009, 17:10:43
Post #6





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 14.09.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


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.

Ten post edytował Drav 2.05.2009, 17:14:23


--------------------
XHTML | CSS | PHP (Uczę się :D)
Go to the top of the page
+Quote Post
gulldarek
post 2.05.2009, 17:16:15
Post #7





Grupa: Zarejestrowani
Postów: 156
Pomógł: 15
Dołączył: 13.09.2003
Skąd: London

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
Drav
post 2.05.2009, 17:21:23
Post #8





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 14.09.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował Drav 2.05.2009, 17:24:06


--------------------
XHTML | CSS | PHP (Uczę się :D)
Go to the top of the page
+Quote Post
gulldarek
post 2.05.2009, 17:23:45
Post #9





Grupa: Zarejestrowani
Postów: 156
Pomógł: 15
Dołączył: 13.09.2003
Skąd: London

Ostrzeżenie: (0%)
-----


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.

Ten post edytował gulldarek 2.05.2009, 17:24:52
Go to the top of the page
+Quote Post
Drav
post 2.05.2009, 17:24:53
Post #10





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 14.09.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


zmieniłem, dalej to samo smile.gif


--------------------
XHTML | CSS | PHP (Uczę się :D)
Go to the top of the page
+Quote Post
gulldarek
post 2.05.2009, 17:26:40
Post #11





Grupa: Zarejestrowani
Postów: 156
Pomógł: 15
Dołączył: 13.09.2003
Skąd: London

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
Drav
post 2.05.2009, 17:29:25
Post #12





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 14.09.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


Wielkie dzięki, naprawdę smile.gif Dzięki Tobie nauczyłem się kilku przydatnych rzeczy smile.gif

Pozdrawiam i dziękuję za pomoc.


--------------------
XHTML | CSS | PHP (Uczę się :D)
Go to the top of the page
+Quote Post
pkwiatkowski
post 4.05.2009, 19:54:46
Post #13





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 21.02.2008

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:26