2012-02-22 1 views
7

젠드 양식을 확장하는 user_form 클래스 하나를 만들었습니다.이 클래스는 csrf에 대한 username, password, hash의 네 가지 요소를 가지고 있으며, 마지막으로 submit 버튼을 사용합니다.양식 객체가 이미 생성 된 후에 특정 위치에 zend 양식 요소를 추가하는 방법은 무엇입니까?

user_form 개체를 생성하면이 네 가지 요소가 모두 렌더링됩니다.

컨트롤러 작업에서 로그인을 확인한 후 실패 시도를 확인하고 실패 횟수를 수정 한 후 제출 버튼 앞에 zend captch를 추가하려고합니다.

captcha 요소를 추가하고 제출 버튼 뒤에 추가했습니다.

어떻게 특정 위치에 zend 요소를 추가 할 수 있습니까? 또는 제출 버튼 전에 어떻게 추가 할 수 있습니까?

내가하는 방식이 적절하다는 것을 알려주세요. 답장을 기다리는 중입니다. 감사합니다 ...

답변

14

처음부터 주문 번호를 알려주십시오. 추가 할 때 captcha 요소에 주문 번호를 추가하십시오.

$element->setOrder(10); 

또는

$form->addElement('text', 'username', array('order' => 10)); 

또한 Zend_Form manual 참조하십시오.

+0

이 인식되지 않았습니다. 내 대답을 삭제했습니다. – Layke

+0

감사합니다 @ markus-tharkun –

+0

링크가 죽었습니다. (그러나 ZF2 지금 사용하고 있습니다 – Dennis

6

마르쿠스 말했듯이 당신은 setOrder()를 사용할 수 있습니다, 또는 당신이 당신의 viewscript에서 양식을 렌더링 할 때 별도로 각 필드를 렌더링 할 수 있습니다

// .phtml 
<form id="form" action="<?= $this->escape($this->form->getAction()); ?>" method="<?= $this->escape($this->form->getMethod()); ?>"> 
<table> 
    <?= $this->form->username ?> 
    <?= $this->form->password ?> 
    <?= $this->form->hash ?> 
    <?= $this->form->captcha ?> 
    <?= $this->form->submit ?> 
</table> 
</form> 
+0

@Liyali –