如何以zend形式获取无线电ID

时间:2011-04-07 13:52:25

标签: php zend-framework zend-form

...斐伊川

我希望按照定义设置单选按钮ID,但是我设置了带有标签值的id,请告诉我出错的地方。 Thanx ......这是我编码的内容及其输出...

 $suggestionMode = new Zend_Form_Element_Radio('radioSuggestionMode');
 $suggestionMode->setLabel('')
            ->addMultiOptions(array('radioSuggestionMode'=>'Suggestion Mode'))
            ->setAttrib('checked','checked')
            ->setOptions(array('onclick'=>'selectSuggestionMode()'));

HTML输出我采取以下方式

<input id="radiSuggetionMode-radioSuggestionMode" type="radio" checked="checked" name="radioSuggestionMode">

但我想通过以下方式

<input id="radiSuggetionMode" type="radio" checked="checked" name="radioSuggestionMode">

2 个答案:

答案 0 :(得分:2)

您无法更改它,因为此类格式的无线电ID已硬编码到Zend_View_Helper_FormRadio。您必须根据自定义ID生成的原始Zend_View_Helper_FormRadio编写自己的自定义视图助手。

答案 1 :(得分:0)

获得你想要的东西的唯一方法就是扩展Zend_View_Helper_FormRadio,就像Marcin说的那样。在Zend / View / Helper / FormRadio中查找它显然

您可以复制并粘贴整个文件,但是您必须更改一行代码。 (除了班级名称和所有那些)


            // generate ID
            $optId = $id . '-' . $filter->filter($opt_value);

查找以上行并将其更改为:


            // generate ID
            $optId = $filter->filter($opt_value);

这会将id更改为您使用addMultiOption方法指定的选项值。

我不知道这是否会破坏任何可能希望ID为id-value格式的zend组件,但你可以试试。

创建类并编辑它之后,您必须将辅助路径添加到视图中,以便它找到它而不是标准帮助程序。

如果这有助于你,请告诉我。