我正在从我的数据库中填充一个下拉列表选择。到目前为止,我设法创建的下拉选择仅包含一些产品名称。我想显示类别名称以及产品,但类别名称不应可选。
我有以下两个表格。
表名: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
谢谢:)仅供参考,我正在使用代码点火器:0
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;
有一种叫做 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>