Поле внутри таблицы mysql, если оно не сериализовано, возвращает простой индексированный массив, например:
$biz_cats = array(4, 5, 8, 12, 17);
Я заполняю поле выбора, используя все категории, используя:
SELECT `ID`, `cat_name` FROM `tbl_categories`
Код для поля выбора ниже:
<select multiple="true" name="biz-cats[]" id="biz-cats" size="10">
<option value="0">-- SELECT ONE --</option>
<?php
// To populate all the categories to later-on allow user to select or de-select from
if ($categories && is_array($categories)) {
foreach ($categories as $category) {
echo '<option value="' . $category['ID'] . '">' . $category['cat_name']</option>';
}
}
?>
</select>
Поскольку эта форма предназначена для редактирования / обновления записи (не для добавления новой записи), мне нужно выбрать некоторые параметры в зависимости от $biz_cats
Я определенно должен выбрать их именно тогда, когда другие поля формы заполнены значениями в базе данных.
вы ищете in_array
if(in_array($category['ID'], $biz_cats)){ $selected = 'selected'; } else { $selected = ''; }
echo '<option value="' . $category['ID'] . '" ' . $selected . '>' . $category['cat_name']</option>';
Других решений пока нет …