2011-02-26 2 views
1

내가이 필요합니다젠드 양식에서 일부 HTML을 렌더링하는 방법은 무엇입니까? 내 양식에

<li class ="af_title"><div>Contact form</div></li> 

내가 예를 들어 텍스트 필드가 필요한 경우 이해 - 그럼 난 그냥 Zend_Form_Element_Text를 만들고 주위에 HtmlTag 장식을 포장 것 - 바로?

질문 :

1) 내가 주위에 장식을 포장 할 수 있도록 내가 DIV 폼 요소를 생성 할 방법?

2) mmm. -이 요소의 내용을 "문의 양식"으로 설정하는 방법은 무엇입니까?

감사합니다 :) 내부에 다음과 같이 당신이 할 수있는 <li class ="af_title">div 주위에 당신의 연락처 양식을 래핑하는

+0

문자열에서 왔어? – Phil

+0

그냥 하드 코딩 된 라벨입니다. :) 양식의 이름. – Stann

+0

내 질문에 내 양식에 임의의 html을 주입하는 방법이 있습니까? – Stann

답변

4

:

$yourForm = new YourForm(); 
$yourForm->addDecorator(array('div' => 'HtmlTag'), array('tag' => 'div')); 
$yourForm->addDecorator(array('li' => 'HtmlTag'), array('tag' => 'li', 'class' => 'af_title')); 

편집 : 나는 당신이 사업부의 폼 요소 말하는 것을 볼

. 이러한 요소는 존재하지 않지만 쉽게 만들 수 있습니다. 이를 위해 새로운 양식 요소 (즉, div 요소)와 html 생성을 담당 할 폼보기 도우미가 필요합니다. 나는이 두 요소의 간단한 예를 준비하여 내 뜻을 보여 주었다 :

Div.php in APPLICATION_PATH./양식/요소 : APPLICATION_PATH에서

class My_Form_Element_Div extends Zend_Form_Element { 
    /** 
    * Default form view helper to use for rendering 
    * @var string 
    */ 
    public $helper = 'formDiv'; 

    public function __construct($spec, $options = null) { 
     parent::__construct($spec, $options); 
     $this->removeDecorator('label'); 
     $this->removeDecorator('htmlTag'); 

    } 

} 

FormDiv.php./뷰/헬퍼 다음과 같이

class My_View_Helper_FormDiv extends Zend_View_Helper_FormElement { 


    public function formDiv($name, $value = null, $attribs = null) { 

     $class = ''; 

     if (isset($attribs['class'])) { 
      $class = 'class = "'. $attribs['class'] .'"'; 
     } 

     return "<li $class><div>$value</div></li>"; 
    } 

} 

이 데, 당신은 단지 자신의 init() 메소드에서 어떤 형태 요소에 DIV 양식 요소를 추가 할 수 있습니다

"연락처 양식을"수행
$div = new My_Form_Element_Div('mydiv'); 
    $div->setValue('Contact form')->setAttrib('class', 'af_title'); 
    $this->addElement($div); 
+0

와우. 대단하다. 감사. – Stann

+0

@Andre. 도와 줄 수있어서 기뻐. – Marcin