【问题标题】:Zend Form - How do I remove the optgroup labelZend Form - 如何删除 optgroup 标签
【发布时间】:2012-04-02 01:33:43
【问题描述】:

我知道以前有人问过这个问题,但我似乎找不到答案...或解决方案。

我有许多使用“多选”的选择框。下拉列表是从数据库中填充的,数组中的第一个值始终是“选择一个”。这是我无法改变的,我正在重写一个应用程序并且根本没有改变数据库。

一切正常,但它们总是作为带有标签的“optgroup”标签出现,标签总是在列表顶部放置一个“0”。这些框总是说“选择一个”,这很好,但是当展开时,您会在顶部看到“0”……这是 optgroup 标记的“标签”属性。

我都是这样做的......

$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”以仅用于演示目的...

任何帮助都将不胜感激...

谢谢!

【问题讨论】:

    标签: php zend-framework zend-form


    【解决方案1】:

    如果你想摆脱 OPTGROUP,你只需要将一个简单的数组作为参数传递给addMultiOptions(),如下所示:

    $form->programstatus->addMultiOptions($ProgramStatusList);
    

    因为如果你传递一个多维数组,Zend_Form 将间接将父数组的每个索引视为group of options(使用 FormElement View Helper)。

    【讨论】:

    • 太简单了!非常感谢,现在我有很多退格要做:)
    猜你喜欢
    • 1970-01-01
    • 2011-11-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多