Php 如何以zend格式获取无线电id

Php 如何以zend格式获取无线电id,php,zend-framework,zend-form,Php,Zend Framework,Zend Form,嗨 我希望单选按钮id按定义设置,但我正在使用标签值设置id,请建议我的错误所在。Thanx。。。这是我的代码和它的输出 $suggestionMode = new Zend_Form_Element_Radio('radioSuggestionMode'); $suggestionMode->setLabel('') ->addMultiOptions(array('radioSuggestionMode'=>'Suggestion Mode'))

我希望单选按钮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">

但是我想要下面的方法

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


您不能更改它,因为收音机ID的格式是硬编码的。您必须根据自定义ID生成的原始视图编写自己的自定义视图帮助程序。

获得所需内容的唯一方法是像Marcin说的那样扩展Zend_view_helper_FormRadio。在Zend/View/Helper/FormRadio中查找它

您可以复制和粘贴整个文件的大部分内容,但有一行代码需要更改。(除了类名和所有这些)

查找上面的行并将其更改为:


            // generate ID
            $optId = $filter->filter($opt_value);
这会将id更改为使用addMultiOption方法指定的选项值

我不知道这是否会破坏任何zend组件,这些组件可能希望ID采用ID值格式,但您可以尝试

创建并编辑类后,必须将辅助对象路径添加到视图中,以便它可以找到它,而不是标准的辅助对象


让我知道这是否对您有帮助。

如果是这样的话,那么代码中的name也应该显示为name=“”.$name。“”id=“”.$optId.”,但它不是…@Lakshman。因此,您希望您的收音机使用不同的名称而不是id?是的,我希望收音机id为“RadiuggetMode”而不是“RadiuggetMode RadiuggetMode”。@Lakshman。您需要修改Zend_View_Helper_FormRadio或编写自己的,因为ZF中没有用于更改id生成的选项或参数。id始终采用以下形式:
$optId=$id.-”$过滤器->过滤器($opt_值)
;Thanx伙计们,我已经将视图助手更新为$optId=$id,现在我得到了我想要的…:)如果你开始添加更多的选项,这可能会给你带来麻烦,因为在这种情况下,它们都使用相同的id,但是如果它现在给了你想要的,那就太好了。