Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Lista wyboru z bazy
Forum PHP.pl > Forum > PHP
joka2
Tabela wyglada tak:

  1. liczba_porzadkowa | nazwa
  2. ---------------------------
  3. 1 | jeden
  4. 2 | dwa
  5. 3 | trzy
  6. 4 | cztery


Moim zadaniem jest wyświetlenie zawartosci tabeli w liście rozwijalnej, co mi się udało:

  1. <?php
  2. $dane = mysql_query("SELECT * FROM tabela");
  3. echo '<select name="liczba_porzadkowa">';
  4. while ($wiersz = mysql_fetch_assoc($dane))
  5. {
  6. echo '<option>'.$wiersz["nazwa"].'</option>';
  7. }
  8. echo '</select>';
  9. ?>


Z automatu, za pierwszym uruchomieniem strony, na liście wyboru pojawi mi się "jeden", ponieważ jest to pierwsza pozycja wybrana z bazy za pomoca SELECTa. Czyli tak, jak chcę. Po wyświetleniu listy mogę wybrać jedną z czterech pozycji, co robię. Następnie, po kliknięciu na button "Przeładuj stronę" znów mam na liście pierwszą pozycję. Dążę do tego, żeby skrypt "pamiętał" mój wybór.

  1. <?php
  2. echo '<form action="index.php" method="post">';
  3. $dane = mysql_query("SELECT * FROM tabela");
  4. echo '<select name="liczba_porzadkowa">';
  5. while ($wiersz = mysql_fetch_assoc($dane))
  6. {
  7. echo '<option>'.$wiersz["nazwa"].'</option>';
  8. }
  9. echo '</select>';
  10. echo '<input type="submit" name="przeladuj" value="Przeładuj stronę">';
  11. ?>


Domyślam się, że muszę sprawdzić, co znajduje się w "liczba_porzadkowa", co też robię, a także mogę ją przypisać do zmiennej:

  1. <?php
  2. echo $_POST['liczba_porzadkowa'];
  3. $zmienna = $_POST['liczba_porzadkowa'];
  4. ?>


Zastanawiam się, co zrobić, aby po wybraniu "Przełąduj stronę" wybór był taki, jaki wskazałem.
Bardzo proszę o podpowiedź aby rozwiązać mój problem.
nospor
Lepiej nadawaj VALUE dla option i tą wartością się kieruj przy sprawdzaniu wartości.
Aby coś zaznaczyc musisz dodac checked="checked"
  1. $porz = isset($_POST['liczba_porzadkowa']) ? $_POST['liczba_porzadkowa'] : null;
  2. while ($wiersz = mysql_fetch_assoc($dane))
  3. {
  4. $checked = ($porz == $wiersz['nazwa']) ? ' checked="checked"' : '';
  5. echo '<option value="'.$wiersz["nazwa"].'"'.$checked.'>'.$wiersz["nazwa"].'</option>';
  6. }

phpion
Cytat(nospor @ 29.10.2010, 10:41:08 ) *
Aby coś zaznaczyc musisz dodac checked="checked"

~nospor miał na myśli selected="selected" smile.gif
nospor
Tak, oczywiscie, selected="selected". Pomyliło mi się z checkboxem smile.gif
Dzieki za poprawke smile.gif
joka2
Działa.

Efekt można zobaczyć na stronie 4oo.pl, w sekcji: "Dodaj stronę".

Chciałbym Wam podziękować za pomoc.
Może po 1 linku (nofollow) dla nospor i phpion do Waszych serwisów, wyświetlany przez miesiąc w stopce mojego autorskiego katalogu?

Dziękuję za pomoc.
Marek
fr33d0m
Trochę nie na temat, ale Twój katalog przy dodawaniu strony wycina znaki - z URL questionmark.gif winksmiley.jpg
Dodaje stronę z tymże znakiem i wyskakuje mi:
Kod
Nie istnieje taki adres.
Proszę sprawdzić poprawność adresu i ewentualnie wprowadzić ponownie!

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.