Поле внутри таблицы 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>';
<option value="value" selected>text</option>
. Затем работайте с условиями if, напримерif(condition){ echo "selected";}