我知道之前有人问过,但我似乎无法找到答案......或解决方案。
我有很多选择框使用'multiselect'。下拉列表正在从数据库中填充,数组中的第一个值始终为“Select One”。我无法改变,我正在重写一个应用程序,而不是根本不更改数据库。
一切正常,但它们总是以带有标签的'optgroup'标签形式出现,标签总是在列表的顶部加上'0'。这些方框总是说“选择一个”,这很棒,但扩展后你会看到顶部的'0'...这是optgroup标签的'label'属性。
我这样做就像这样...
$Criteria = new Criteria();
$Criteria->add( DictionaryPeer::CATEGORY, 'Progress Notes: Program Status' );
$Criteria->addAscendingOrderByColumn( 'Ordinal' );
$ProgramStatuses = DictionaryPeer::doSelect($Criteria);
$ProgramStatusList = array();
foreach ($ProgramStatuses as $ProgramStatus) {
$ProgramStatusList [ $ProgramStatus->getDictionaryID() ] = $ProgramStatus->getWord();
}
$form->programstatus->addMultiOptions( array(
$ProgramStatusList ));
echo $form->programstatus->renderLabel() . $form->programstatus->renderViewHelper();
我只是想删除'0'仅用于演示目的......
任何帮助总是受到赞赏......
谢谢!
答案 0 :(得分:1)
如果你想摆脱OPTGROUP,你只需要将一个简单的数组作为参数传递给addMultiOptions()
,如下所示:
$form->programstatus->addMultiOptions($ProgramStatusList);
因为如果你传递一个多维数组,Zend_Form会间接地将父数组的每个索引都视为group of options(使用FormElement View Helper)。