2011-09-30 100 views
0

我有一個複選框在zend框架中,我必須在圖像中代替標籤進行顯示。Zend Framework多選複選框

例如:

<label for="elId-1222"> 
<input type="checkbox" name="elId[]" id="elId-1222" value="1222" checked="checked" class="inputtext"> 
<image src="images/yes.png"> 
</label><br /> 

所以在multioptions我已經準備鍵值對的數組,但我將如何能夠到位的增值圖像,以上面的圖像得到顯示在標籤。 我的代碼如下所示:

$multiCheckbox = new Zend_Form_Element_MultiCheckbox('elId', array ('disableLoadDefaultDecorators' =>true)); 

$multiCheckbox ->setName('elId') 
       ->setLabel('elId') 
       ->setRequired(false) 
       ->setAttrib('class', 'inputtext') 
       ->setDecorators(array('ViewHelper')) 
       ->setMultiOptions($options); 

回答

0

您可以通過使用裝飾ViewScript

做到這一點。例如,這是我的情況:

$fanpages = $this->addElement('MultiCheckbox', 'fanpages', array(
      'label' => 'Fanpages', 
      'id' => 'fanpages', 
       )); 

     //Don't check where value come from 
     $this->getElement('fanpages')->setMultiOptions(array()) 
       ->setRegisterInArrayValidator(false); 

     $this->getElement('fanpages')->setDecorators(array(array('ViewScript', array(
        'viewScript' => 'loadMyFanpages.phtml', 
        'class' => 'form_element' 
      )))); 

的意見/腳本/ loadMyFanpage.phtml

  <ul class="jp_listfan"> 
       <?php foreach ($this->element->getMultiOptions() as $option => $value): ?> 
        <li> 
         <input name="fanpages[]" value="<?php echo trim($option); ?>" type="checkbox"/><img src="your/url/images.jpg"/><?php echo trim($value); ?> 
        </li> 
       <?php endforeach; ?> 
      </ul> 

您可以根據您的需要使用自定義HTML打印所有元素^ _^h打開這個幫助。