Php 如何以zend格式获取无线电id
嗨 我希望单选按钮id按定义设置,但我正在使用标签值设置id,请建议我的错误所在。Thanx。。。这是我的代码和它的输出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'))
$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,但是如果它现在给了你想要的,那就太好了。