Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php i sql] listaw rozwijana jak dobrze wyświetlić ?
Forum PHP.pl > Forum > Przedszkole
wojtekwro
witam,
tym razem może troche banalny problem mam, jak wyświetlić w postaci listy rozwijanej zawartość jednej kolumny w tabeli sql questionmark.gif

zrobiłem to tak :

  1. <?php
  2.  
  3. $connection = @mysql_connect('localhost', 'root', '')
  4. or die('brak polaczenia z BD');
  5. $db = @mysql_select_db("audity")
  6. or die('Nie mogę połączyć się z bazą danych');
  7. /* zapytanie do konkretnej tabeli */
  8. $wynik = mysql_query("SELECT * FROM plan")
  9. or die('Błąd zapytania');
  10. $obszar['id']=$obszar;
  11. $obszar = $row["obszar"];
  12.  
  13. if(mysql_num_rows($wynik) > 0) {
  14. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  15. while($r = mysql_fetch_assoc($wynik)) {
  16. echo '<form action="...">
  17. <select name="nazwa">
  18. <option>'.$r['obszar'].'';
  19. echo'</option>
  20. </select></form>';
  21. }
  22. }
  23. ?>


efektem tego jest to, że mam kilka list rozwiajnych jednopozycyjnych ;/ dodatkowo zostanie wprowadzony warunek jeżeli dla pierwego wiersza w polu "plan" jest 1 to nei wyświetla zawartośi wiersza 1 z kolumny obszar ;]

co powinienem poprawić questionmark.gif
kossa
Select poza pętle while bo teraz to masz formularzy tyle ile rekordów.

  1. <?php
  2. echo '<form action="..."> <select name="nazwa">";
  3.  
  4. while($r = mysql_fetch_assoc($wynik)) 
  5. {
  6. echo "<option>'.$r['obszar'].''</option>";
  7. }
  8. echo "</select></form>";
  9. ?>


Łukasz

edit:
popraw średniki i cudzysłowia bo masz namieszane...
sniezny_wilk
Witam,

przygotowałem dla Ciebie taki kodzik:
  1. <?php
  2.  
  3. $connection = @mysql_connect('localhost', 'user', 'pass')or die('brak polaczenia z BD');
  4. $db = @mysql_select_db( "db_name" ) or die ('Nie mogę połączyć się z bazą danych');
  5.  
  6. /* zapytanie do konkretnej tabeli */
  7. $wynik = mysql_query("SELECT * FROM tabela")or die('Błąd zapytania');
  8.  
  9. if( mysql_num_rows( $wynik ) > 0) 
  10. {
  11. /* najpierw inicjujemy początek znaczników <form>, bo inaczej będą się w pentli wywyoływały, to samo z <select> */
  12. echo '<form action="index.php" method="post">';
  13. echo '<select name="nazwa">';
  14.  /* Ja używam mysql_fetch_array() - zwraca wiersze spełniające zapytanie*/
  15. while ( $row = mysql_fetch_array( $wynik ) )
  16. {
  17. /* tutaj same elementy wyświetlane w polu select, czyli..*/
  18. /* "pole" to oczywiście nazwa kolumny do jakiej chcesz się odwołać*/
  19.  
  20. echo '<option>'.$row["pole"].'</option>';
  21.  
  22. }
  23. /*na końcu zamykamy tagi*/
  24. echo '</select></form>';
  25. }
  26.  
  27. ?>


enjoy biggrin.gif


Cytat(kossa @ 29.05.2007, 12:33:30 ) *
Select poza pętle while bo teraz to masz formularzy tyle ile rekordów.

  1. <?php
  2. echo '<form action="..."> <select name="nazwa">";
  3.  
  4. while($r = mysql_fetch_assoc($wynik)) 
  5. {
  6. echo "<option>'.$r['obszar'].''</option>";
  7. }
  8. echo "</select></form>";
  9. ?>


Łukasz

edit:
popraw średniki i cudzysłowia bo masz namieszane...


Heheh kossa Ty też ładnie namieszałeś z cudzysłowiami.. Popatrz na pierwsze echo tongue.gif
wojtekwro
dzięki za pomoc,
wszystko chodzi fajnie tylko mam takie pytanko jak to ugryść dalej aby po wybraniu z tej listy np pole3 wyświetlił dane z tego wiersza, a następnei po dopisaniu danych w formularzu dodał je w tym wierszu bo na to nie mam pomysła ;]
sniezny_wilk
Tu akurat się bez JavaScirptu nie obejdzie niestety.. ale na necie jest masa takich przykładów. Z JS nie jestem dobry, więc jakiegoś przykładu nie podam. Napisz w dziale od JS na tym forum, na pewno ktoś pomoże.
wojtekwro
niestety w tym jestem jeszcze bardziej zielony niż w php ;] także tu bez gotowca raczej nei ma szans ;/;/
tommy4
no, bez javascriptu się nie obejdzie.

Możesz wczytać np. dane z bazy danych do tablicy, a potem wygenerowac kod html/javascript, ktory upa do tablicy (tym razem javascriptowej oczywiscie) i potem przy wyborze z listy uzupelnie odpowiednie pola.

Możesz też zrobić to dynamicznie technologią AJAX, lecz nie wiem czy na twoim etapie nieznania javascriptu będziesz się brał za opartego na tym języku ww. ajaxa.

http://www.google.pl/search?hl=pl&q=ja...+Google&lr=

ENJOY.
wojtekwro
czasami warto postać w korkach wracając z pracy ;]

a gdyby przekazać id wybranego ppola z listy w taki sposób questionmark.gif

  1. <?php
  2. echo '<option value='.$row["id"].'>'.$row["pole"].'</option>';
  3. ?>


zamiast

  1. <?php
  2. echo '<option>'.$row["pole"].'</option>';
  3. ?>


a następnie zrobić sobie $_POST['jezyk'] w odpowiednim już formularzu questionmark.gif

myślicie, że to zadziała questionmark.gif zrobiłbym już to w osobno otwartym oknie przeglądarki

przytkałem się przy liście na pewnym warunku, chciałbym aby wyświetlana wartość spełniała warunek jak poniżej w skrypcie, pokazuje mi wszystkie wartości pola obszar czyli nei działa tak jak powinien, a dodatkowo tylko pierwsza pozycja z kolumny obszar jest umieszczona na liście
  1. <?php
  2.  
  3. $connection = @mysql_connect('localhost', 'root', '')or die('brak polaczenia z BD');
  4. $db = @mysql_select_db( "audity" ) or die ('Nie mogę połączyć się z bazą danych');
  5.  
  6. /* zapytanie do konkretnej tabeli */
  7. $wynik = mysql_query("SELECT * FROM plan")or die('Błąd zapytania');
  8. $wiersz['id']=$id;
  9. $id = $row["id"];
  10. $wiersz['plan']=$plan;
  11. $plan = $row["plan"];
  12. if( mysql_num_rows( $wynik ) > 0)
  13. {
  14.  
  15.  /* najpierw inicjujemy początek znaczników <form>, bo inaczej będą się w pentli wywyoływały, to samo z <select> */
  16. echo '<form action="index.php" method="post">';
  17. echo '<select name="obszar">';
  18.  /* Ja używam mysql_fetch_array() - zwraca wiersze spełniające zapytanie*/
  19. while ( $row = mysql_fetch_array( $wynik ) )
  20. {
  21. /* tutaj same elementy wyświetlane w polu select, czyli..*/
  22. /* wyświetlona wartość pola !=1*/
  23. if ($r['plan'] !=1) {} ELSE{
  24. echo '<option value='.$row["id"].'>'.$row["obszar"].'</option>';
  25.  /*na końcu zamykamy tagi*/
  26. echo '</select></form>';  }
  27. }}
  28. ?>


i pytanko czy w miejscu gdzie jest echo wyświetlające dane moge w taki sposób przekazać sobie id questionmark.gif będzie ono przekazane do następnego formularza i dane zostaną dopisane do wiersza w którym występuje wybrana z listy pozycja questionmark.gif
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.