Вывод данных из БД MySQL в тег Select

203
15 октября 2018, 23:20

Выводится выпадающий список из базы данных, но не получается его структурировать, вывести столбиком все модели.

<select  id="select" onchange="Change(this);">
        <optgroup>
        <?php foreach($cat as $key => $item): ?>
            <?php if(count($item) > 1): // если это родительская категория ?>
                <option>  <h3><li><a href="#"><?=$item[0]?></a></li></h3>
                    <ul>
                        <?php foreach($item['sub'] as $key => $sub): ?>
                        <li>- <a href="?view=cat&amp;category=<?=$key?>"><?=$sub?></a></li>    
                        <?php endforeach; ?>        
                    </ul>       
                </option>   
                    <?php elseif($item[0]): // если самостоятельная категория ?>
                        <li><a href="?view=cat&amp;category=<?=$key?>"><?=$item[0]?></a></li>
                    <?php endif; ?>
                <?php endforeach; ?>
        <optgroup>
    </select>
Answer 1

Если правильно вас понял. Не проверял, но суть должна быть ясна

<select id="select" onchange="Change(this);">
    <optgroup>
    <?php foreach($cat as $key => $item): ?>
        <?php if(count($item) > 1): // если это родительская категория ?>
            <option><a href="#"><?=$item[0]?></option> //родитель
            <?php foreach($item['sub'] as $key => $sub): ?>
                <option><a href="?view=cat&amp;category=<?=$key?>">- <?=$sub?></a></option>
            <?php endforeach; ?>        
        <?php elseif($item[0]): // если самостоятельная категория ?>
            <option><a href="?view=cat&amp;category=<?=$key?>"><?=$item[0]?> </a></option> // самостоятельная
        <?php endif; ?>
    <?php endforeach; ?>
    <optgroup>
</select>

Вообще лучше посмотреть в сторону вывода дерева с помощью рекурсии

Пример

$traverse = function ($categories, $prefix = '-') use (&$traverse) {
    foreach ($categories as $category) {
         echo PHP_EOL.$prefix.' '.$category->name;
         $traverse($category->children, $prefix.'-');
     }
};
$traverse($nodes);

Получится:

- Root
-- Child 1
--- Sub child 1
-- Child 2
- Another root
READ ALSO
POST-отправка не работает(Content-Security-Policy)

POST-отправка не работает(Content-Security-Policy)

Пытаюсь обработать и отправить данные через POST на emailПри клике на submit-кнопку идет переход на мой php-файл

199
Фильтрация GridView YiI2

Фильтрация GridView YiI2

Нужна подсказкаОсваиваю Yii2 и тут возникла проблема

206
Как в форму обратной связи добавить вложение файла?

Как в форму обратной связи добавить вложение файла?

Не пойму как отправлять вложенные файлы в формеКод

186
Многомерный массив JSON и PHP

Многомерный массив JSON и PHP

У меня есть массивы:

291