php - 构建父子类别 Codeigniter

标签 php mysql 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 函数,我可以获取所有类别及其父类别 ID,但如何按照我上面提到的方式对其进行分组并传递给选择组

在我的 Controller 中,我使用此函数来获取所有类别:

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

更新::: 我设法通过创建两个函数来分别获取父级和子级来实现这一点,如下所示::

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

并在第一个函数循环内使用第二个函数结果。这是执行此操作的正确方法,还是任何其他正确的方法。我正在使用我的 View 文件,如下所示::

 <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 的 result_array() 获取数组格式结果。就像这样..

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

像这样渲染你的 View ...

<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()

关于php - 构建父子类别 Codeigniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41737887/

相关文章:

php - 如何将ajax post响应保存到数据库中?

php - 使用文件路径更新 SQL 表

php - 将没有输入字段的 html 表中的 php 值发布到数据库

php - 在smarty中,如何检查关联数组是否为空?

mysql - 重复 key 更新 - 找到保留字

php - 在没有 PDO::PARAM 的情况下绑定(bind)参数是否安全?

mysql - 如何检查 MySQL 数据库备份是否过时

php - CodeIgniter - 如何有选择地缓存输出?

php - 无法加载请求的类 : Pdf

codeigniter - 如何在Codeigniter迁移文件中添加小数字段?