• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Automatyczne dodawanie opcji do rozwijanego pola wyboru

Object Storage Arubacloud
0 głosów
651 wizyt
pytanie zadane 14 grudnia 2015 w HTML i CSS przez Pelicjan Nowicjusz (190 p.)

Witam, moja sytuacja przedstawia się tak:

Mam formularz:

<form action=""> 
<select name="lista" onchange="pokaz(this.value)">
<option value="">Wybierz opcję:</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</form>

Formularz po wybraniu jednej z opcji wysyła jej wartość dalej do funkcji, ale to nie jest istotne.

W bazie MySQL mam bardzo dużo rekordów, których wartości chciałbym włożyć do kolejnych opcji w formularzu. Czy jest jakiś sposób na zrobienie tego automatycznie pętlą? Chodzi mi o coś takiego: Biorę wartość pierwszego rekordu z kolumny X i dodaję ją jako opcję do formularza. W przykładzie wyżej są to np. 1,2,3. Niestety zrobienie tego ręcznie byłoby wręcz niemożliwe, bo wartościami są ciągi znaków, a nie cyfry jak w przykładzie.

Dziękuję z góry za wszelkie podpowiedzi :)

1 odpowiedź

0 głosów
odpowiedź 14 grudnia 2015 przez bartek7910 Obywatel (1,980 p.)
edycja 18 grudnia 2015 przez bartek7910
 
Najlepsza

Witam.

Miałem podobny problem i rozwiązałem go w myślę chyba najprostrzy sposób z pętlą while.

 

<form action="">
<select name="lista" onchange="pokaz(this.value)">
<option value="">Wybierz opcję:</option>
<?php
  $sql='SELECT * FROM table';
  if($rezultat=@$link->query($sql))
  {
    while ($wiersz=$rezultat->fetch_assoc())
    {
      echo'<option>'.$wiersz['nazwa_kolumny'].'</option>';
    }
  }
?>
</select>
</form>

 

komentarz 14 grudnia 2015 przez Pelicjan Nowicjusz (190 p.)

Niestety, nie działa, jako kolejna opcja wyświetla się

'.$wiersz['nazwa_kolumny'].'

Oczywiście nazwę tabeli w kwerendzie zmieniłem, tak samo nazwę kolumny w środku pętli oraz połączyłem się z bazą danych mysqli_connect.

Przy okazji, co oznaczają te znaki? ->

 

komentarz 14 grudnia 2015 przez bartek7910 Obywatel (1,980 p.)

To był przykład w obiektowym php

W strukturalnym powinno być tak:
 

<form action="">
<select name="lista" onchange="pokaz(this.value)">
<option value="">Wybierz opcję:</option>

<?php
$link = mysqli_connect($host, $db_user, $db_password, $db_name) or die("Error " . mysqli_error($link));
$query = "SELECT * FROM nazwa_tabeli" or die("Error in the consult.." . mysqli_error($link));
if ($result = mysqli_query($link, $query))
{
  while($row = mysqli_fetch_array($result))
  {
    echo'<option value='.$wiersz["id"].'>'.$wiersz["nazwa_kolumny"].'</option>';
  }
  mysqli_free_result($result);
}
?>

</select>
</form>

Wydaje mi się że powinno zadzałać.

komentarz 14 grudnia 2015 przez Pelicjan Nowicjusz (190 p.)
Podmieniłem Twój kod zmieniając jedynie nazwę tabeli, kolumny, id i dane dostępu do bazy danych. Niestety, dalej nie działa. Po rozwinięciu listy nic się nie pojawia oprócz "Wybierz opcję:".
komentarz 14 grudnia 2015 przez bartek7910 Obywatel (1,980 p.)
Do kodu wkradł się mały błąd. W funkcji echo zmień nazwę zmiennej z $wiersz na $row.
komentarz 14 grudnia 2015 przez Pelicjan Nowicjusz (190 p.)

Nadal pusto w rozwijanej liście.

Z tego co sobie testuję, to nawet taki kod nie działa:

<form action=""> 
<select name="lista" onchange="pokaz(this.value)">
<option value="">Wybierz opcję:</option>
<?php
echo "<option value='1'>Opcja1</option>";
?>
</select>
</form>

Kombinuję z różnym ustawieniem cudzysłowów i apostrofów, ale bezskutecznie.

komentarz 14 grudnia 2015 przez bartek7910 Obywatel (1,980 p.)
U mnie to rozwiązanie działa bez problemu wyciągając z bazy dane klientów i wstawia do selecta.

Stronę masz w plikach .php czy .html?

Sprawdziłem i Twój kod u mnie działa.
komentarz 14 grudnia 2015 przez Pelicjan Nowicjusz (190 p.)
Miałem rozszerzenie .html ...

Po zmianie na .php działa... Dziękuję serdecznie za pomoc. Dopiero zaczynam przygodę z tworzeniem stron i nie wiedziałem, że ma to jakieś znaczenie.
komentarz 14 grudnia 2015 przez bartek7910 Obywatel (1,980 p.)
Ja ekspertem też nie jestem. Ale cieszę się że pomogłem.

Oprócz html proponuję kursy wideo Pana Zelenta na temat css, php i mysql.

Pozdrawiam
komentarz 18 grudnia 2015 przez Mateusz11 Pasjonat (22,910 p.)
Proszę o użycie przycisku "CODE"
komentarz 18 grudnia 2015 przez bartek7910 Obywatel (1,980 p.)
Poprawione. Człowiek wciąż uczy się nowych rzeczy...

Podobne pytania

0 głosów
0 odpowiedzi 104 wizyt
0 głosów
2 odpowiedzi 460 wizyt
pytanie zadane 27 marca 2019 w C i C++ przez Teslum_369 Gaduła (4,190 p.)
0 głosów
0 odpowiedzi 301 wizyt
pytanie zadane 28 listopada 2017 w JavaScript przez Snow Początkujący (360 p.)

92,632 zapytań

141,502 odpowiedzi

319,880 komentarzy

62,014 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...