2012-02-22 6 views
7

He creado una clase user_form que amplía el formulario zend, tiene 4 elementos nombre de usuario, contraseña, hash para csrf y al final botón de enviar.Cómo agregar el elemento de formulario zend en una posición específica, una vez que el objeto form ya ha creado?

La creación del objeto de user_form representa todos esos cuatro elementos.

Después de validar el inicio de sesión en la acción del controlador, compruebo los intentos fallidos y, después de corregir un número de intentos fallidos, deseo agregar la captura de zend antes del botón Enviar.

Agregué el elemento captcha y se adjuntó en el botón después de enviar.

¿Cómo puedo agregar el elemento zend en una posición específica? ¿O cómo puedo agregarlo antes de enviar el botón?

También déjeme saber que la forma en que estoy haciendo es adecuada? Esperando su respuesta. Gracias ...

Respuesta

14

Dé a sus elementos los números de orden desde el principio. Agregue un número de orden al elemento captcha, cuando lo agregue.

$element->setOrder(10); 

o

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

Véase también la Zend_Form manual.

+0

no era consciente de esto. Eliminó mi respuesta – Layke

+0

Gracias @ markus-tharkun –

+0

el enlace está muerto :(pero estoy usando ZF2 ahora – Dennis

6

También se puede usar como setOrder() dijo Markus, o cuando se procesa la forma en la que su ViewScript, puede hacer que cada campo por separado:

// .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

Gracias @Liyali –

Cuestiones relacionadas