Мне удалось создать родительские и дочерние категории, я использую одну таблицу для категорий, с полями 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>
Используйте 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()
между категориями и таблицами подкатегорий.
Других решений пока нет …