Создание родительского дочернего элемента категории Codeigniter

Мне удалось создать родительские и дочерние категории, я использую одну таблицу для категорий, с полями cat_id, cat_name_cat_parent_id. Так что все работает. Но я хочу, чтобы эти категории отображались на моей странице добавления товара, и она должна отображаться в виде значений группы параметров в блоке выбора, причем родительская категория отключена, а дочерние категории находятся ниже. как показано ниже

<select>
<optgroup label="Parent Category 1">
<option value="1">sub cat 1</option>
<option value="2">sub cat 2</option>
</optgroup>
<optgroup label="Parent Category 2">
<option value="mercedes">sub cat 1</option>
<option value="audi">sub cat 2</option>
</optgroup>
</select>

с помощью функции cat_model я могу получить все категории и их родительский идентификатор категории, но как сгруппировать их, как я упоминал выше, и перейти к выбору группы

В моем контроллере я использую эту функцию, чтобы получить все категории:

$this->data['product_categories'] = $this->category_m->get();

Обновит :::
Мне удалось получить это, создав две функции, чтобы получить родительский и дочерний по отдельности, как это ::

public function getAllParents();
public function getAllChild($id)

и используя вторую функцию внутри цикла результата кулачных функций. Это правильный способ сделать это или любые другие правильные способы. Я мой файл просмотра я использую как это:

 <optgroup label="<?php echo $parent->category_name; ?>">
<?php $children = $controller->getAllChild($parent->category_id);
foreach ($children as $child) { ?>
<option value="<?php echo $child->category_id ;?>"<?=set_select('product_category', $child->category_id); ?>><?php echo $child->category_name; ?>
</option>
<?php } ?>
</optgroup>

0

Решение

Используйте codeigniter’s result_array() для результата формата массива. Как это ..

$this->data['product_categories'] = $this->category_m->get()->result_array();
//print_r($this->data['product_categories']);

Сделайте так, чтобы ваш взгляд был таким …

<select>
<?php foreach ($product_categories as $cat){?>
<optgroup label="<?php echo $cat['category_name'];?>">
<option value="1">sub cat 1</option>
<option value="2">sub cat 2</option>
</optgroup>
<?php }?>
</select>

Замечания: Для подкатегорий вы должны использовать join() между категориями и таблицами подкатегорий.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector