2011-02-10 5 views
4

디스플레이 그룹에서 라벨을 제거하는 방법을 알아 내려고, 아래의 마크 업을 보면 ID 주소 라벨과 다음 dd가있는 dt가 있음을 알 수 있습니다. , 나는 이것을 제거하고 싶지만 필드 집합을 유지하십시오.젠드 폼 디스플레이 그룹 데코레이터

디스플레이 그룹을 추가하려면 각 요소를 추가 한 후에 $this->addDisplayGroup(array(...), 'legend' => 'address');을 내 양식 init 클래스 내에 사용하고 있습니다. 내가 가지고 싶지 않은 요소를 제거하기 위해 사용할 수있는 데코레이터가 있습니까? ?

<form id="CreateAddress" enctype="application/x-www-form-urlencoded" action="" method="post"> 
    <dl class="zend_form"> 
     <dt id="address-label">&#160;</dt> 
     <dd id="address-element"> 
      <fieldset id="fieldset-address"> 
       <legend>Address</legend> 
       <dl>    
        <dt id="addressLine1-label"> 
         <label for="addressLine1" class="required">Address Line 1</label> 
        </dt> 
        <dd id="addressLine1-element"> 
         <input type="text" name="addressLine1" id="addressLine1" value=""> 
        </dd> 

        ...etc... 

      </fieldset> 
     </dd> 
     ...buttons... 
    </dl> 
</form> 

감사합니다,
마틴

답변

0

그래서 거래는 무엇인가?

$group = $form->getDisplayGroup ('the name of the group'); 
$group->removeDecorator ('Zend_Form_Decorator_DtDdWrapper'); 
5

removeDecorator 매개 변수 Zend_Form_Decorator_DtDdWrapper 그렇게 작동하지 않았다 내가 사용 :

$group = $form->getDisplayGroup('the name of the group'); 
$group->removeDecorator('DtDdWrapper'); 
1

을 그래서 당신은 수동으로 개별적으로 각 표시 그룹에서 DtDd의를 제거 할 필요가 없습니다, 당신은 사용할 수 있습니다

foreach ($this->_displayGroups as $dg){ 
      $dg->removeDecorator('DtDdWrapper'); 
     } 
8

(특정 양식에 대해) 정의 된 모든 Zend Form Display Group에 적용하려면 다음 방법을 사용하십시오.

$form->setDisplayGroupDecorators(array(
    'FormElements', 
    'Fieldset', 
)); 

참고 : 이는 이전에 정의 된 표시 그룹 만 변경합니다.

관련 문제