2009-03-20 16 views
12

¿Alguna idea de cómo crear un formulario simplemente con Zend_Form y jquery? Quiero usar Zend_Form para validar el formulario, por lo que no tengo que crear el script dual en JavaScript y PHP.Formulario de Zend Framework con jquery

Gracias,

Ivo Trompert

Respuesta

10

No hay problema.

Agregue ZendX_JQuery a su biblioteca si usa autocarga.

Luego extienda ZendX_JQuery_Form a sus necesidades. Haz tus cosas en el método init() de tu clase.

Por ejemplo, yo era capaz de crear un campo de Autocompletar que tiene validación periódica Zend_Form además el comportamiento jQuery así:

$elem = new ZendX_JQuery_Form_Element_AutoComplete(
    'query', 
    array('Label' => 'Search', 
      'required'=>true, 
      'filters'=>array('StripTags'), 
      'validators'=>array(
          array('validator'=>'StringLength', 
           'options'=>array('min'=>'3'), 
           'breakChainOnFailure'=>true 
           ), 
          array('Alnum') 
       ) 
     ) 
    ); 

$elem->setJQueryParams(array('data' => array(), 
    'url' => 'my_autocomplete_callback.php', 
    'minChars' => 1, 
    'onChangeInterval' => 500, 
    ) 
); 

Entonces, incluso he cambiado los decoradores por defecto como este:

$elementDecorators = array(
    array('UiWidgetElement', array('tag' => '')), 
    array('Errors', array('tag' => 'div', 'class'=>'error')), 
    array('Label'), 
    array('HtmlTag', array('tag' => 'div')), 
); 
$elem->setDecorators($elementDecorators); 

Y finalmente agregue a mi formulario (recuerde que estoy en el init(), así que lo abordaré a través de $ this):

$this->addElement($elem); 

Ahí está, la magia está hecha.

PD: no se olvide de añadir lo siguiente en su archivo de arranque:

$view->addHelperPath('ZendX/JQuery/View/Helper/', 'ZendX_JQuery_View_Helper'); 
+1

Por favor, tenga cuidado eso - ZendX se eliminará y ya no será compatible. – MEM

+0

@MEM: ¿Enlace de origen? – JCM

+1

@Jonathan http://zend-framework-community.634137.n4.nabble.com/Discontinuing-Maintenance-of-ZendX-JQuery-Suggest-drop-for-2-0-td3221856.html – MEM

1

Bueno, Zend_Form no generará ningún JavaScript del lado cliente validadores para usted, si eso es lo que quiere decir.

PERO: Puede hacer toda la validación en el servidor, y usar jQuery para enganchar en los campos 'cambiar eventos, y AJAX-ify la validación del formulario.

Compruebe that para una muestra.