Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Pobieranie danych z bazy danych do listy rozwijalnej.
Vion
post
Post #1





Grupa: Zarejestrowani
Postów: 112
Pomógł: 2
Dołączył: 27.06.2008

Ostrzeżenie: (0%)
-----


Witam
Zrobiłem sobie taki skrypt który pozwala dodać menu które może należeć do dowolnego bloku. I teraz chcę umożliwić edycję danego menu, żeby użytkownik mógł wybrać z listy rozwijalnej blok do którego ma należeć menu po edycji. Ale ważne jest aby w liście rozwijalnej jako selected była zaznaczony blok przed edycją. Zrobiłem do tego taki skrypt

  1. <select name="blok_id">
  2.            <option value="<?php echo $row1['blok_id'];?>" selected>
  3.            
  4.            <?php echo $row1['blok_name'];?>
  5.            </option>
  6.            <?php
  7.            $wynik = mysql_query("SELECT * FROM engine_menu_blok");
  8.            while($row = mysql_fetch_assoc($wynik)) { ?>
  9.            <option value="<?php echo $row['blok_id'];?>"><?php echo $row['blok_name'];?></option>; <?php
  10.             } ?>
  11.    </select>


Ale wychodzi mi coś takiego że w liście rozwijalnej jest jako selected zaznaczona stara opcja, ale też jest w liście jako nowa opcja czyli 2 razy. Więc jak zrobić aby opcja zaznaczona w selected sie nie powtarzała ? Dla lepszego zrozumienia dodaję obrazek gdzie widać ten błąd. Opcja Menu Glowne wystepuje 2 dwukrotnie raz jako selected a drugi raz gdy z bazy są pobierane wszystkie opcje.

(IMG:http://img40.imageshack.us/img40/8311/beznazwy2gnq.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Miszazdw
post
Post #2





Grupa: Zarejestrowani
Postów: 16
Pomógł: 1
Dołączył: 3.08.2009

Ostrzeżenie: (0%)
-----


Cytat(Vion @ 7.08.2009, 13:23:06 ) *
  1. <select name="blok_id">
  2.            <option value="<?php echo $row1['blok_id'];?>" selected>
  3.            
  4.            <?php echo $row1['blok_name'];?>
  5.            </option>
  6.            <?php
  7.            $wynik = mysql_query("SELECT * FROM engine_menu_blok");
  8.            while($row = mysql_fetch_assoc($wynik)) { ?>
  9.            <option value="<?php echo $row['blok_id'];?>"><?php echo $row['blok_name'];?></option>; <?php
  10.             } ?>
  11.    </select>


Popatrz na swój kod. Najpierw dajesz jedna opcje - na początku.

  1. <option value="<?php echo $row1['blok_id'];?>" selected>
  2.  
  3. <?php echo $row1['blok_name'];?>
  4. </option>


a później wszystko listujesz pętlą while. To logiczne ze pierwszy wpis pojawi się dwa razy. Tak na szybko zagnieźdź kolejną pętle w while, i wtedy if-a daj i po problemie. if($==1) {}.

Pozdrawiam
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 22:25