2011-11-11 2 views
2

젠드 양식을 만들었습니다. 나는 요소의 그룹을 만들고 싶어 그 같은 출력 HTML :젠드 폼이 같은 요소를 그룹화하는 방법?

  <div class="form_wrapper"> 
       <div class="form_label"> 
        <label class="txtlabel" for="salary_type">Salary type</label> 
        <span>*</span> 
       </div> 
       <div class="form_element"> 
        <select class="jp_select" id="salary_type" name="salary_type"> 
         <option>..1..</option> 
         <option>2</option> 
         <option>3</option> 
        </select> 
        <input type="text" id="salary_min" class="txtinput" name="salary_min" value="Min" onfocus="if(this.value=='Min') this.value='';" onblur="if(this.value=='') this.value=('Min');"> 
        <input type="text" id="salary_max" class="txtinput" name="salary_max" value="Max" onfocus="if(this.value=='Max') this.value='';" onblur="if(this.value=='') this.value=('Max');"> 
       </div> 
      </div> <!-- end .form_wrapper --> 

내 코드 : 나는 마찬가지로 지금까지

답변

3

같은 HTML 출력을 가지고 장식을 설정하는 방법

$this->addElement('select', 'salary_type', array(
      'label' => 'Salary type', 
      'multiOptions' => $salary_types, 
      'class'=>'jp_select' 
     )); 

     $this->addElement('text', 'salary_min', array(
      'label' => 'Min', 
      'class'=>'txtinput' 
     )); 

     $this->addElement('text', 'salary_max', array(
      'label' => 'Max', 
      'class'=>'txtinput' 
     )); 

$this->addDisplayGroup(array('salary_type','salary_min','salary_max'), 'salary_group'); 

아시다시피 간단한 데코레이터 만 사용하여 정확한 HTML 구조를 렌더링 할 수는 없습니다. 이 문제를 해결하는 한 가지 방법은 displayGroup 데코레이터 스택에 ViewScript Decorator를 사용하는 것입니다. 뷰 스크립트 내에서, 당신은 $this->element->getElements();를 사용하여 개별 요소를 검색 할 수 있습니다 예를 들어

($ this-> 요소는 Zend_Form_DisplayGroup의 인스턴스) :

$this->addDisplayGroup(
    array('salary_type','salary_min','salary_max'), 
    'salary_group', 
    array(
     'decorators' => array(
      array('ViewScript', array('viewScript' => 'path/to/viewscript.phtml')), 
     ), 
    ) 
); 

는, 그것을 자신을 시도하지 않은 있지만, 작동해야합니다.

+0

나는 이미 답변을 찾았지만 도움을 주셔서 감사합니다. – hungneox

+5

@eureka 왜 당신이 찾은 것을 게시하지 마십시오?! 그것은 누군가를 도와야합니다. – droidbot