0

我正在从我的数据库中填充一个下拉选择。到目前为止,我设法创建的下拉选择仅包含一些产品名称。我想将类别名称与产品一起显示,但类别名称不应该是可选的。

我有以下两张表。

表名:product_category

category_id     category_name
    1              Beverage
    2              Food

表名称:产品

product_id   category_id    product_name
    1           1              Pepsi
    2           2              Burger

我的模特

 function products() {

     $this->db->select('product_name, product_id');
      $records=$this->db->get('products');

        $data=array();
        $data[''] = 'Select'; 
            foreach ($records->result() as $row)
                {
                    $data[$row->product_id] = $row->product_name;
                }

            return ($data);
        }  

目前,当我运行我的视图文件并单击下拉选择时,我得到如下值:

    Pepsi
    Burger

但是我应该在上面的模型中多写什么来使我的视图文件中的下拉菜单看起来像下面这样?

饮料

     Pepsi

食物

     Burger 

谢谢 :) 仅供参考,我正在使用 Codeigniter :0

4

2 回答 2

2

There is something for that called optgroup

<select>
  <optgroup label='category 1'>
    <option value='1'>Item 1</option>
    <option value='2'>Item 2</option>
  </optgroup>
  <optgroup label='category 2'>
    <option value='3'>Item 3</option>
    <option value='4'>Item 4</option>
  </optgroup>
</select>
于 2012-05-31T21:30:06.410 回答
2

CodeIgniter 太棒了,所以在你的例子中,你可以做一个:

$arr = array( 'Beverage' => array( '1' => 'Pepsi' ),
              'Food' => array( '2' => 'Bruger' ));

echo dropdown('food_id', $arr);

因此,您将为每个值增加一个深度,其中第一个键是 optgroup 的名称,第二个是 id。它将具有select > optgroup > option@Pitchinnate 的回复中给出的结构

在你的 foreach 中,它看起来像这样:

$data[$row->category_name][$row->product_id] = $row->product_name;
于 2012-06-01T06:28:31.170 回答