Недавно попалась задачка сделать выпадающий список к котором доступные значения будут разбиты по группам. Может кому-то из Вас дорогие читатели пригодится такое решение.

Вариант данного решения был найден на форуме одного из зарубежных сайтов уже даже не припомню где, он был немножко допилен под себя и в результате получилось вот что.

Для реализации нам необходимо задействовать тег <optgroup> он представляется из себя контейнер внутри которого располагаются теги <option> объединенные в одну группу.

$string = 'select id, name, category from my_table';
$query = mysql_query($string) or die (mysql_error()); 

print '<select name="list">';$group = array();
while ($row = mysql_fetch_assoc($query)) {$group[$row['category']][] = $row;}
foreach ($group as $key => $values) {echo '<optgroup label="'.$key.'">';
foreach ($values as $value) {
echo '<option value="'.$value['id'].'">'.$value['name'].'</option>';}
echo '</optgroup>';}
print '</select>';

Вот и все, вам достаточно подставить свой запрос и все должно заработать.

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь