【问题标题】:Edit individual radio buttons in zend form view script在 zend 表单视图脚本中编辑单个单选按钮
【发布时间】:2010-10-18 18:14:18
【问题描述】:

我有一个使用视图脚本的 zend 表单。我想访问各个单选按钮项目,但我不知道该怎么做。现在,我只是将它们全部打印出来:

echo $this->element->getElement('myRadio');

这会将它们垂直打印出来。我需要多一点控制。我需要能够在一列中打印前 5 个选项,然后在第二列中打印接下来的 5 个。

【问题讨论】:

    标签: radio-button zend-form


    【解决方案1】:

    我也有同样的问题。我发现没有很好的方法来做到这一点(大约 ZF 1.10.8)

    Matthew Weier O'Phinney 在此页面上提出了一些建议:

    http://framework.zend.com/issues/browse/ZF-2977

    但我发现这种方法在实践中很麻烦。那张票上的原始海报有一个好主意,我认为他们最终应该按照这些思路采用一些不错的方法。

    但由于目前没有更好的办法,我暂时只听马修的建议。

    对于我正在处理的表单,要从组中只呈现一个单选按钮,我必须这样做:

    在我的表单类中

    $radio = new Zend_Form_Element_Radio('MYRADIO');
    $radio->addMultiOption('OPTION1', 'Option One')
          ->addMultiOption('OPTION2', 'Option Two');
    
    $this->addElement($radio);
    

    在我的视图脚本中,只渲染 OPTION1

    echo $this->formRadio(
        $this->form->MYRADIO->getFullyQualifiedName(),
        $this->form->MYRADIO->getValue(),
        null,
        array('OPTION1' => $this->form->MYRADIO->getMultiOption('OPTION1'))
    );
    

    这将呈现一个<input type="radio" /> 元素和一个关联的<label>。不会渲染其他装饰器,这很痛苦。

    对于您的情况,您可能希望使用 ViewScript 视图助手来呈现您的单选元素和其他元素 - 因此您可以按照您的描述将所有元素排列在您自己的自定义表格标记中。

    【讨论】:

    • 是的,我已经在使用 ViewScript 选项了。我不介意收音机没有得到所有其他装饰器。这就是我使用 ViewScript 的原因。感谢您提供有关 formRadio 视图助手的提示。
    • 这似乎是最好的选择。这将创建应有的元素。只需要能够添加一个类,这是最好的选择。
    【解决方案2】:

    也想出了这个。只需使用

    $this->element->getElment('myRadio')->getMultiOptions();
    

    它会返回一个键/值选项数组。

    【讨论】:

      猜你喜欢
      • 2013-02-27
      • 2013-07-29
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 2018-04-03
      • 2016-06-17
      • 1970-01-01
      • 2019-01-12
      相关资源
      最近更新 更多