【问题标题】:How to make a selectbox the label of a radio button in Zend Fw如何使选择框成为 Zend Fw 中单选按钮的标签
【发布时间】:2012-01-12 14:16:30
【问题描述】:

不是我的想法,但我需要一组单选按钮,其中最后一个按钮值是一个选择框。视觉解释:

o 选项 1

o 选项 2

o |___选择框|

它在 HTML 中的样子:

<input type="radio" name="radioSet">Opt1
</input>

<input type="radio" name="radioSet">Opt2
</input>

<input type="radio" name="radioSet"><!-- Opt 3 -->
<select>
<option value="a"> aaa</option>
<option value="b"> bbb</option>
</select>
</input>

到目前为止我在 ZF 所做的事情:

$picker = new Zend_Form_Element_Select('selectBox', array(
    'multiOptions' => array('a'=>'aaa', 'b' =>'bbb'),
    'decorators' => array(
        array('Label', array('escape'=>false))
        )
    ));


$this->addElement(
'radio',
'radioSet',
array(
    'multioptions' => array(
            'x'=>'Opt1',
            'y'=>'Opt2',
            'z'=>$picker //'Dropdown picker'
            ),
    'label' => 'My Title:',
    'decorators' => array(
            'ViewHelper',
            'Errors',
            array('Description', array('escape' => false)),
            'Label',
            array('HtmlTag', array('tag'=>'div')),
    ),
)
);

但这仅返回 3 个单选按钮,以及标签“Opt1”和“Opt2”,但在第三个单选按钮之后没有任何内容。

我希望它像上面显示的 HTML 代码一样,但是这个 ZF 代码不返回它。有人知道如何实现这一点吗?

谢谢!

【问题讨论】:

  • 您是否尝试编写自定义视图助手装饰器?
  • 我认为您不需要自定义装饰器,而是使用表单的视图脚本。 stackoverflow.com/a/8455360/212940

标签: zend-framework drop-down-menu radio-button zend-form


【解决方案1】:

不幸的是,您可能不得不编写一个装饰器来用 select 替换 label 标签。查看 Zend_Form_Element_Radio() 的代码,它专门将 label 标记添加到收音机。

【讨论】:

    【解决方案2】:

    感谢您的建议。我对 Zend 很陌生,所以我检查了如何制作自定义视图助手装饰器,我无法让它像那样工作,但它帮助我解决了另一个问题。

    我找到了解决方案,之后只需将选择框添加为单个元素,然后使用 css 将其设置为所需的位置会更容易。

    再次感谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-04
      • 1970-01-01
      • 2012-10-16
      • 2012-12-13
      相关资源
      最近更新 更多