Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z wyświetlaniem (if)/formularz
Drav
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
gulldarek
post
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
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
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 (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (
E: Działa zamieniłem "==" na "="

Ten post edytował Drav 2.05.2009, 16:46:45
Go to the top of the page
+Quote Post
gulldarek
post
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
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
Go to the top of the page
+Quote Post
gulldarek
post
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
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) (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
gulldarek
post
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
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
gulldarek
post
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
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ę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Dzięki Tobie nauczyłem się kilku przydatnych rzeczy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam i dziękuję za pomoc.
Go to the top of the page
+Quote Post
pkwiatkowski
post
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 (IMG:http://forum.php.pl/style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 11:34