2011-10-18 2 views
0

몇개의 필드로 Zend_From을 만들었습니다. 제가하고 싶은 것은 단락 안에 넣어서 자연스럽게 흐를 수 있도록하는 것입니다. 예를 들어Zend_Form 분할하기

Danny had [select with 1-10] apples and James had [select with 3-20] pears.

들어 난 더 이상 형태

$elem= $this->registerForm->getElement('danny'); 

하지만 출력에,이 요소의 값이 포함되지 않습니다이 작업을 수행하기 위해 노력 해왔다. 나는 또한 이것을 Zend_Form_SubForm()으로 할 수 있다고 생각했지만 예제를 찾을 수 없었다.

답변

3

특수한 데코레이터가있는 일반 양식이나 일부 데코레이터가 제거 된 경우에는 하위 폼이 필요하지 않습니다.

<?php 

class Your_Form_Example extends Zend_Form 
{ 

    public function init() { 
     // wrap the select tag in a <span> tag, hide label, errors, and description 
     $selectDecorators = array(
      'ViewHelper', 
      array('HtmlTag', array('tag' => 'span')) 
     ); 

     $this->addElement('select', 'danny', array(
      'required' => true, 
      'multiOptions' => array('opt1', 'opt2'), 
      'decorators' => $selectDecorators // use the reduced decorators given above 
     )); 
    } 
} 

가 여기에

<form method="<?php echo $form->getMethod() ?>" action="<?php echo $form->getAction() ?>"> 
    <p>Danny had <?php echo $form->danny ?> apples and James had <?php echo $form->james ?> pears.</p> 
    <p>More stuff here...</p> 

    <?php echo $form->submit ?> 
</form> 

이 좋은 형태로 출력을 유지하기 위해

<p>Danny had <span><select name="danny" id="danny"><option>opt1</option><option>opt2</option></select></span> apples and James had .....</p> 

같은 결과한다 ... 양식을 렌더링하는보기 스크립트의 오류, 설명 및 레이블 데코레이터가 제거되어 렌더링되지 않습니다. 따라서 양식의 오류를 검사 할 때 select 요소와 함께 렌더링되지 않으므로 select 요소에 오류가있는 경우 양식 상단 또는 다른 곳에 표시해야합니다.

희망이 있습니다.

0

단일 필드까지 사용할 수 있습니다. 컨트롤러에서보기로 보내는 form 변수는 개체의 배열입니다. -> 연산자를 사용하여 단일 필드를 가져올 수 있습니다. 예를 들어, 당신은 $this->form->danny$this->form->jameszend form

에 배치하여 HTML 요소입니다

danny had <?php echo $this->form->danny; ?>apples and james had <?php echo $this->form->james; ?>....... 

주를 사용할 수 있습니다