如何在选项组和选项位于我的数据库中的下拉列表中获取选项组?
我在我的数据库中有这个:
id |类别|子类别
1个苹果奶奶史密斯
2个苹果斐济
3香蕉chiquita
并希望选择下拉列表:
苹果
香蕉
在我的控制器中,我从db获取行的数组。我有一个阵列 $ arrSelectSubcategory和$ arrSelectCategory。 答案我发现建议使用多维数组,所以我试图将表单传递给二维数组:
->addMultiOptions($arrSelectCategory->($arrSelectSubcategory));
但这不起作用。答案我发现像this one只处理预定义的选项组,我从我的数据库中获取它们。
答案 0 :(得分:1)
想象一下你的数组中的值如下:
$fruits = array('apples'=>array('id_granny_smith'=>'granny smith',
'id_fiji'=>'fiji'),
'bananas' => array('id_chiquita'=>'chiquita')
);
您可以尝试这样的事情:
$fruits_select = new Zend_Form_Element_Select('fruits', array('escape' => false));
foreach($fruits as $fruit => $name_fruit){
$fruits_select->addMultiOptions(array($fruit=>array()));
foreach($name_fruit as $key => $val){
$fruits_select ->addMultiOption($key, $val);
}
}
结果是:
<select name="fruits" id="fruits">
<optgroup label="apples">
</optgroup>
<option value="id_granny_smith" label="granny smith">granny smith</option>
<option value="id_fiji" label="fiji">fiji</option>
<optgroup label="bananas">
</optgroup>
<option value="id_chiquita" label="chiquita">chiquita</option>
</select>
<小时/> 在你的评论中,你的数组是这样的:
$fruits_bdd = array('0' => array('id' => 1, 'category' => 'apples', 'subcategorie'=> 'granny smith'),
'1' => array('id' => 2, 'category' => 'apples', 'subcategorie'=> 'fiji'),
'2' => array('id' => 3, 'category' => 'bananas', 'subcategorie'=> 'chiquita'),
);
为了让数组$fruits
像我的答案一样,做到这一点:
$fruits = array();
foreach($fruits_bdd as $fruit_bdd){
$fruits[$fruit_bdd['category']][$fruit_bdd['id']] =$fruit_bdd['subcategorie'];
}