Недавно попалась задачка сделать выпадающий список к котором доступные значения будут разбиты по группам. Может кому-то из Вас дорогие читатели пригодится такое решение.
Вариант данного решения был найден на форуме одного из зарубежных сайтов уже даже не припомню где, он был немножко допилен под себя и в результате получилось вот что.
Для реализации нам необходимо задействовать тег <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>';
Вот и все, вам достаточно подставить свой запрос и все должно заработать.