2011-04-07 21 views
0

斐伊川...如何獲得無線電臺ID在Zend的形式

我想定義的單選按鈕ID設置,但我得到的ID設置有標籤值,請建議我要去的地方錯了。感謝名單...以下是我已經編寫和它的輸出...

$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"> 

回答

0

得到你想要的東西的唯一方法就是像Marcin說的那樣擴展Zend_View_Helper_FormRadio。在Zend/View/Helper/FormRadio中尋找它明顯

您可以複製和粘貼大部分文件,但有一行代碼必須更改。 (除了類名和所有)

 

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

查找上面的行並將其更改爲:

 

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

,這將改變ID是你與addMultiOption方法指定的選項值。

我不知道這是否會打破任何zend組件,可能會期望ID是在id值的格式,但你可以嘗試。

當你創建你的類並編輯它後,你必須添加助手路徑到視圖中,以便它可以找到它而不是標準助手。

讓我知道,如果這可以幫助你。

+0

Thanx傢伙,我已經更新了視圖助手$ optId = $ id,現在我得到了我想要的... :) – Lakshman 2011-04-08 05:59:41

+0

如果您開始添加更多選項,這可能會給您帶來麻煩,因爲他們都會使用相同的ID這種情況下,但如果它給你你想要的東西,那麼很好。 – 2011-04-08 06:22:38

2

您無法將其更改爲無線電ID的這種格式被硬編碼到Zend_View_Helper_FormRadio。您必須根據自定義ID生成的原始Zend_View_Helper_FormRadio編寫自己的自定義視圖助手。

+0

如果是這種情況,那麼名稱也應該顯示爲name =''。$ name。''''' id =''。$ optId。'「',從代碼中,但它不是... – Lakshman 2011-04-07 15:08:21

+0

@Lakshman。所以你想有不同的名稱,而不是你的收音機的ID? – Marcin 2011-04-08 00:51:23

+0

是的我想要無線電ID爲「radiSuggetionMode」而不是 「radiSuggetionMode-radiSuggetionMode」。 – Lakshman 2011-04-08 05:35:38