Как выбрать параметры внутри <select multiple = «true»> из массива php?

1

Поле внутри таблицы 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, я определенно должен их выбирать точно, когда другие поля формы заполняются значениями внутри базы данных,

  • 0
    Вы можете выбрать опцию через <option value="value" selected>text</option> . Затем работайте с условиями if, например if(condition){ echo "selected";}
  • 0
    Японял твою точку зрения. Спасибо @TanuelMategi. Хотя это очень прямолинейное и простое решение, но мне было интересно об этом с предыдущих 36 часов. Еще раз спасибо
Теги:
arrays
multi-select
dropdown

1 ответ

0
Лучший ответ

ваш поиск in_array

if(in_array($category['ID'], $biz_cats)){ $selected = 'selected'; } else { $selected = ''; }
echo '<option value="' . $category['ID'] . '" ' . $selected . '>' . $category['cat_name']</option>';
  • 0
    Спасибо @cmorrissey за то, что пришли, чтобы спасти меня только через 5 минут.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню