我正在填充我的数据库中的下拉列表选项。我到目前为止设法创建的下拉列表选项仅包含一些产品名称。我想显示类别名称和产品,但不应选择类别名称。
我有两张桌子。
表名: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
但是我应该在上面的模型中写些什么来使我的视图文件中的dropdrown看起来如下?
饮料
Pepsi
食物
Burger
谢谢:) 仅供参考,我使用的是Codeigniter:0
答案 0 :(得分:2)
有一些名为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>
答案 1 :(得分:2)
CodeIgniter非常棒,所以在你的例子中你可以做到:
$arr = array( 'Beverage' => array( '1' => 'Pepsi' ),
'Food' => array( '2' => 'Bruger' ));
echo dropdown('food_id', $arr);
因此,对于每个值,您将获得额外的深度,其中第一个键是optgroup的名称,第二个键是id。它将具有@ Pitchinnate的回复
中给出的结构select > optgroup > option
在你的foreach中,它看起来像这样:
$data[$row->category_name][$row->product_id] = $row->product_name;