PHP MySQL Select Box With Optgroups

У меня есть таблица со списком «кодов» и «групп». Мне нужно иметь возможность динамически создавать поле выбора с «кодами», сгруппированными с помощью optgroup. Я пытался связываться с некоторыми решениями онлайн, но не повезло.

ТАБЛИЦА ИНФОРМАЦИИ:

 CREATE TABLE `dtcodes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`groups` varchar(30) NOT NULL,
`code` varchar(5) NOT NULL,
`name` varchar(40) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=52 DEFAULT CHARSET=latin1

groups|codes|name
-----------------------
Materials|M1|No Product
Materials|M2|Low Brix
Other Equipment|AV1|Test1
Other Equipment|AV2|Test2

PHP mysqli:

    $sqlcodes = "SELECT * FROM dtcodes ORDER BY groups ASC";
$resultcodes = mysqli_query($con, $sqlcodes);

Моя цель в конце будет что-то вроде этого.

 <select>
<optgroup label="Materials">
<option value="M1">No Product</option>
<option value="M2">Low Brix</option>
</optgroup>
<optgroup label="Other Equipment">
<option value="AV1">Test1</option>
<option value="AV2">Test2</option>
</optgroup>

0

Решение

Надо было подождать 20 минут, прежде чем опубликовать это понял.

echo "<td><select class='form-control'>";
echo "<option>Select a code...</option>";
if ($resultcodes->num_rows > 0) {
while($row = $resultcodes->fetch_assoc()) {
$group[$row['groups']][] = $row;
}
foreach ($group as $key => $values){
echo '<optgroup label="'.$key.'">';
foreach ($values as $value)
{
echo '<option value="'.$value['code'].'">'.$value['name'].'</option>';
}
echo '</optgroup>';
}
} else {}
echo "</select></td>";
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]