Значение по умолчанию в теге

Есть цикл, который генерирует в форме теги в зависимости от количества записей в БД.

    <select class="form-control" name="publisher_id">
        <?php
        $results = DB::select('select * from publishers');

        foreach ($results as $value): ?>
          <option selected="" value="<?=$value->publisher_id;?>"><?=$value->name;?></option>
        <?php endforeach; ?>

    </select>

Сама форма предназначена для редактирование записи и нужно в publisher вставить значение по-умолчанию.

введите сюда описание изображения

Проблема заключается в том, что select передаёт publisher_id, а при выборе выводится название издателя(то есть name).Оба этих поля находятся в таблице publishers, а сама форма по сути работает с таблицей books, где существует внешний ключ publisher_id. Нужно как-то в option selected поставить name из таблицы publisher, id которого соответствует внешнему ключу 'publisher_id' из таблицы books


Ответы (1 шт):

Автор решения: Yaroslav Molchan

Нужно как-то в option selected поставить name из таблицы publisher, id которого соответствует внешнему ключу 'publisher_id' из таблицы books

Вот тут ничего не понятно написано, было бы лучше показать пример кода, но могу предположить что у вас значение в $publisher->id, тогда достаточно добавить проверку в option, если не угадал, то подставьте свою переменную.

<select class="form-control" name="publisher_id">
    <?php
    $results = DB::select('select * from publishers');

    foreach ($results as $value): ?>
      <option value="<?=$value->publisher_id;?>" <?php if ($publisher->id == $value->publisher_id) echo 'selected';?>><?=$value->name;?></option>
    <?php endforeach; ?>

</select>
→ Ссылка