Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie do bazy, wynik przekazany do form
Forum PHP.pl > Forum > Przedszkole
primo
Witam,

  1. <?php
  2.  
  3. require_once(&#092;"funkcje/BD.class.php\");
  4.  
  5. $id = $_POST[&#092;"id\"];
  6. $this_id = $_POST[&#092;"this_id\"];
  7. $tytul_pl = $_POST[&#092;"tytul_pl\"];
  8.  
  9. $bd = new BD;
  10.  
  11. if (!$bd->otworz()) {
  12. die ($bd->blad());
  13. }
  14.  
  15. if (!$bd->zapytaj(&#092;"SELECT * FROM filmyPolecam ORDER BY id DESC\")) {
  16. die ($bd->blad());
  17. }
  18.  
  19. while($row = $bd->pobierzTablice())
  20. {
  21. $this_id = $row[0];
  22. $tytul_pl = $row[1];
  23.  
  24. echo '<form action=\"index.php?op=33&id='.$this_id.'\" METHOD=\"POST\">';
  25. echo '<select>';
  26. echo '<option><a href=\"index.php?op=33&id='.$this_id.'\">'.$tytul_pl.'</a></option>';
  27.  
  28. }
  29. echo '</select>
  30. <input type=\"submit\" value=\"Wyślij\">
  31. </form>';
  32.  
  33. ?>


nie wiem dlaczego po przekazaniu listy filmów z bazy do rozwijanej listy formularza option, skrypt nie pamięta jaki id jest do konkretnego rekordu. Jak kliknę najwyższy (ostatni z listy) to ok, a każdy kolejny jest uważany jako ten z tym najwyższym id.
nospor
blad nad bledami. czemu ty wp petli ciągle wypisujesz <form i <select? To powinno być przed petlą a wpetli tylko option

pozatym nie przekazuj w form id selecta. nadaj nazwe dla selectsa, nadaj wartości dla option bedace twoim id a potem poprzez post pobierz wartośc selecta.
robienie linku w option to raczej ci nie wyjdzie
primo
A więc tak:

jak wyrzucę form i select z ciała pętli to nic nie przekazuje.

Jeśli dobrze Cię zrozumiałem to mam nadać name dla selecta i value dla option ?

  1. <?php
  2. echo '<select name=$tytul_pl>';
  3. echo '<option value=$this_id><a href=\"index.php?op=33&id='.$this_id.'\">'.$tytul_pl.'</a></option>';
  4. ?>


jakoś mi to nie chce nadal działać...
nospor
  1. <?php
  2.  
  3.  
  4. echo '<form action=\"index.php\" METHOD=\"POST\">';
  5. echo '<select name=\"jakiesname\">';
  6. while($row = $bd->pobierzTablice())
  7. {
  8. $this_id = $row[0];
  9. $tytul_pl = $row[1];
  10.  
  11. echo '<option value=\"'.$this_id.'\">'.$tytul_pl.'</option>';
  12.  
  13. }
  14. echo '</select>
  15. <input type=\"submit\" value=\"Wyślij\">
  16. </form>';
  17.  
  18. ?>


a potem pobierasz
$cos=$_POST['jakiesname'];
primo
dzięki za pomoc. Wprawdzie to nie do końca sprawdziło się u mnie, ale naprowadziło mnie na odpowiedni trop.

Poniżej kod jak wygląda kompletne rozwiązanie:

  1. <?php
  2. require_once(&#092;"funkcje/BD.class.php\");
  3.  
  4.  
  5.  
  6. $bd = new BD;
  7.  
  8. if (!$bd->otworz()) {
  9. die ($bd->blad());
  10. }
  11.  
  12. if (!$bd->zapytaj(&#092;"SELECT * FROM filmyPolecam ORDER BY id DESC\")) {
  13. die ($bd->blad());
  14. }
  15.  
  16.  
  17.  
  18. echo '<form action=\"index.php?op=33&id='.$this_id.'\" METHOD=\"post\">';
  19. echo '<select name=\"nazwa\">';
  20. while($row = $bd->pobierzTablice())
  21. {
  22. $this_id = $row[0];
  23. $tytul_pl = $row[1];
  24.  
  25.  
  26. echo '<option value=\"'.$this_id.'\"><a href=\"index.php?op=33&id='.$this_id.'\">'.$tytul_pl.'</a></option>';
  27.  
  28. }
  29. echo '</select>
  30. <input type=\"submit\" value=\"Wyślij\">
  31. </form>';
  32. ?>


dodam tylko iż w skrypcie, do którego odnosi się cyferka 33 w adresie dopisałem:

  1. <?php
  2. $id = $_POST[&#092;"nazwa\"];
  3. $this_id = $_POST[&#092;"nazwa\"];
  4. $tytul_pl = $_POST[&#092;"nazwa\"];
  5. ?>


to by było na tyle.

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