2017-01-19 3 views
0

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

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

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

$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

Вы говорите на странице о том, как правильно заполнить ее? –

+0

Да, в моем продукте добавление файла просмотра –

ответ

0

Использование CodeIgniter-х result_array() для формата массива result.Like это ..

$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

Я использую одну таблицу для категорий, как я упомянул в своем вопросе, например, с полями cat_id, cat_name и cat_parent_id, если элемент является родительским cat_parent_id, будет 0 –

+0

'print_r ($ this-> category_m -> get() -> result_array();) 'вывести свой массив. –

+0

от var_dump ($ this-> category_m-> get()) Я получаю этот объект arry :::::::::: array (size = 7) 0 => объект (stdClass) [40] public 'category_id' => string '1' (length = 1) public 'category_name' => string 'Visiting Cards' (length = 14) public 'parent_cat_id' => string '0' (length = 1) public 'created_at' => string '2016-12-26 06:23:27' (length = 19) public 'active' => string '1' (length = 1) –

Смежные вопросы