Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] ankieta - kolejny problem z wyswietlaniem
Forum PHP.pl > Forum > Przedszkole
shaolin33
witam ponownie,

niestety nie moge sobie poradzić z jednym przypadkiem:

test.html - formualrz


  1. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  2. <meta http-equiv="Content-Language" content="pl" />
  3. <link rel="stylesheet" href="style.css" type="text/css" />
  4. <title>UMOWY</title>
  5. </head>
  6. <form action="test.php" method="post">
  7.  
  8. <div id="srodek">
  9.  
  10. <dd>
  11. <dl>
  12. <h2>DANE KLIENTA</h2>
  13.  
  14. <b>osoba:</b>
  15. <br>
  16. 1.<select id="1osoba" name="1osoba" >
  17. <option>Jan</option>
  18. <option>Tadek</option>
  19. <option>Romek</option>
  20. (...)
  21. </select>
  22.  
  23. <br>
  24. Wysyłać<form action="...">
  25. <input type="radio" name="radio" value="na adres e-mail" />na adres e-mail
  26. <input type="radio" name="radio" value="na adres korespondencyjny" />na adres korespondencyjny
  27. <input type="radio" name="radio" value="do odbioru" />do odbioru
  28. </form>
  29.  
  30.  
  31. <br>
  32. <input type="submit" value="Zapisz" />
  33. </form>
  34. <br>
  35. <br>
  36.  
  37.  
  38. </body>



test.php




  1. $nie='[ ]' //niezaznaczone
  2. $tak='[X]' //zaznaczone
  3.  
  4.  
  5. osoba: echo $_POST ['1osoba'];



stworzyłem dwie zmienne


$tak
$nie

chce aby wyswietlanie wyniku nei byla jedna osoba ale np.:

zaznaczam w formualrzu: TADEK


postać wyświetlania wyniku ma postać:

[ ] Jan [X] Tadek [ ] Romek



temat wałkuje już od pewnego czasu ale mam za mało wiedzy żeby to samemu napisać, może ktoś mógłby mi pomoc i podać przykład ?
b4rt3kk
Po pierwsze, w option brakuje value:

  1. <select id="1osoba" name="1osoba" >
  2. <option value="jan">Jan</option>
  3. <option value="tadek">Tadek</option>
  4. <option value="romek">Romek</option>
  5. (...)
  6. </select>


Po drugie, pole typu select nie wysyła wszystkich wartości, a tylko te JEDNĄ wybraną przez użytkownika. Także, jeśli chcesz mieć całą listę imion, to albo wczytuj to z bazy, albo z jakiejś tablicy. Np.

  1. $imiona = array('Jan', 'Tadek', 'Romek');
  2.  
  3. // wyświetlanie pola typu select
  4.  
  5. echo '<select name="1osoba">';
  6. foreach ($imiona as $value) echo '<option value="'.$value.'">'.$value.'</option>';
  7. echo '</select>;


Teraz by osiągnąć to o czym pisałeś w pliku test.php:

  1. // tablica z poprzedniego formularza musi zostać również tutaj zadeklarowana lub przesłana w inny sposób np. w sesji.
  2. $imiona = array('Jan', 'Tadek', 'Romek');
  3.  
  4. // odczyt wyników
  5. foreach ($imiona as $value) {
  6. if ($_POST['1osoba'] == $value) echo '[X]'; else echo '[ ]';
  7. echo ' '.$value.'<br/>';
  8. }


i to w zasadzie cała filozofia.
shaolin33
Cytat(b4rt3kk @ 30.10.2012, 14:20:40 ) *
Po pierwsze, w option brakuje value:

  1. <select id="1osoba" name="1osoba" >
  2. <option value="jan">Jan</option>
  3. <option value="tadek">Tadek</option>
  4. <option value="romek">Romek</option>
  5. (...)
  6. </select>


Po drugie, pole typu select nie wysyła wszystkich wartości, a tylko te JEDNĄ wybraną przez użytkownika. Także, jeśli chcesz mieć całą listę imion, to albo wczytuj to z bazy, albo z jakiejś tablicy. Np.

  1. $imiona = array('Jan', 'Tadek', 'Romek');
  2.  
  3. // wyświetlanie pola typu select
  4.  
  5. echo '<select name="1osoba">';
  6. foreach ($imiona as $value) echo '<option value="'.$value.'">'.$value.'</option>';
  7. echo '</select>;


Teraz by osiągnąć to o czym pisałeś w pliku test.php:

  1. // tablica z poprzedniego formularza musi zostać również tutaj zadeklarowana lub przesłana w inny sposób np. w sesji.
  2. $imiona = array('Jan', 'Tadek', 'Romek');
  3.  
  4. // odczyt wyników
  5. foreach ($imiona as $value) {
  6. if ($_POST['1osoba'] == $value) echo '[X]'; else echo '[ ]';
  7. echo ' '.$value.'<br/>';
  8. }


i to w zasadzie cała filozofia.



ta tablice mam utworzyć w osobnym pliku questionmark.gif?

czy w sql ?


b4rt3kk
Tablica ma być i w formularzu i w pliku, do którego formularz odsyła. Tylko, że formularz musi mieć rozszerzenie .php. Plik formularz.php:

  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  3. <meta http-equiv="Content-Language" content="pl" />
  4. <link rel="stylesheet" href="style.css" type="text/css" />
  5. <title>UMOWY</title>
  6. </head>
  7. <form action="test.php" method="post">
  8. <body>
  9.  
  10. <div id="srodek">
  11.  
  12. <dd>
  13. <dl>
  14. <h2>DANE KLIENTA</h2>
  15.  
  16. <b>osoba:</b>
  17. <br>
  18. 1.
  19.  
  20. <?php
  21.  
  22. $imiona = array('Jan', 'Tadek', 'Romek');
  23.  
  24. // wyświetlanie pola typu select
  25.  
  26. echo '<select id="1osoba" name="1osoba">';
  27. foreach ($imiona as $value) echo '<option value="'.$value.'">'.$value.'</option>';
  28. echo '</select>;
  29.  
  30. ?>
  31.  
  32. <br>
  33. Wysyłać<form action="...">
  34. <input type="radio" name="radio" value="na adres e-mail" />na adres e-mail
  35. <input type="radio" name="radio" value="na adres korespondencyjny" />na adres korespondencyjny
  36. <input type="radio" name="radio" value="do odbioru" />do odbioru
  37. </form>
  38.  
  39.  
  40. <br>
  41. <input type="submit" value="Zapisz" />
  42. </form>
  43. <br>
  44. <br>
  45.  
  46.  
  47. </body>


Plik test.php:

  1. <?php
  2. // tablica z poprzedniego formularza musi zostać również tutaj zadeklarowana lub przesłana w inny sposób np. w sesji.
  3. $imiona = array('Jan', 'Tadek', 'Romek');
  4.  
  5. // odczyt wyników
  6. foreach ($imiona as $value) {
  7. if ($_POST['1osoba'] == $value) echo '[X]'; else echo '[ ]';
  8. echo ' '.$value.'<br/>';
  9. }
  10. ?>


To już Twój wybór czy tablica będzie pobierana z bazy danych czy na stałe wpisana w kod.
shaolin33
Cytat(b4rt3kk @ 30.10.2012, 15:36:12 ) *
Tablica ma być i w formularzu i w pliku, do którego formularz odsyła. Tylko, że formularz musi mieć rozszerzenie .php. Plik formularz.php:

  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  3. <meta http-equiv="Content-Language" content="pl" />
  4. <link rel="stylesheet" href="style.css" type="text/css" />
  5. <title>UMOWY</title>
  6. </head>
  7. <form action="test.php" method="post">
  8. <body>
  9.  
  10. <div id="srodek">
  11.  
  12. <dd>
  13. <dl>
  14. <h2>DANE KLIENTA</h2>
  15.  
  16. <b>osoba:</b>
  17. <br>
  18. 1.
  19.  
  20. <?php
  21.  
  22. $imiona = array('Jan', 'Tadek', 'Romek');
  23.  
  24. // wyświetlanie pola typu select
  25.  
  26. echo '<select id="1osoba" name="1osoba">';
  27. foreach ($imiona as $value) echo '<option value="'.$value.'">'.$value.'</option>';
  28. echo '</select>;
  29.  
  30. ?>
  31.  
  32. <br>
  33. Wysyłać<form action="...">
  34. <input type="radio" name="radio" value="na adres e-mail" />na adres e-mail
  35. <input type="radio" name="radio" value="na adres korespondencyjny" />na adres korespondencyjny
  36. <input type="radio" name="radio" value="do odbioru" />do odbioru
  37. </form>
  38.  
  39.  
  40. <br>
  41. <input type="submit" value="Zapisz" />
  42. </form>
  43. <br>
  44. <br>
  45.  
  46.  
  47. </body>


Plik test.php:

  1. <?php
  2. // tablica z poprzedniego formularza musi zostać również tutaj zadeklarowana lub przesłana w inny sposób np. w sesji.
  3. $imiona = array('Jan', 'Tadek', 'Romek');
  4.  
  5. // odczyt wyników
  6. foreach ($imiona as $value) {
  7. if ($_POST['1osoba'] == $value) echo '[X]'; else echo '[ ]';
  8. echo ' '.$value.'<br/>';
  9. }
  10. ?>


To już Twój wybór czy tablica będzie pobierana z bazy danych czy na stałe wpisana w kod.



ok, zapisałem zamiast test.html formularz_test.php

ale dziwnie bo w treści nie zamyka się ten kod php tabeli

od tego momentu tak jak by bylo zle cos:




php?>

<br>
Wysyłać<form action="...">
<input type="radio" name="radio" value="na adres e-mail" />na adres e-mail
<input type="radio" name="radio" value="na adres korespondencyjny" />na adres korespondencyjny
<input type="radio" name="radio" value="do odbioru" />do odbioru
</form>


<br>
<input type="submit" value="Zapisz" />
</form>
<br>
<br>


</body>



i jak daje w formualrzu zapisz to wyskakuje eror:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE in /home/shaolin33/domains/shaolin33.mypage.pl/public_html/formularz_test.php on line 28
b4rt3kk
Bo to nie jest zamknięcie php:

  1. php?>


tylko to:

  1. ?>


i tutaj zapomniałem o apostrofie:

  1. echo '</select>';


ale takie niuanse to przecież sam mógłbyś wyłapać.
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.