Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 19-03-2009 18:23:15

Marc
Nouveau membre
Lieu: Angers
Date d'inscription: 19-03-2009
Messages: 2

[Résolu][1.7.4] ZendX_JQuery_Form et décorateurs

Bonjour,

je rencontre un soucis pour la définition de décorateurs sur un objet ZendX_JQuery_Form_Element_AutoComplete.

Je l'instancie ainsi:

Code:

$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')
        )
    )
);

puis je règle les paramètres propres à l'autocomplétion jQuery:

Code:

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

et je l'ajoute à mon formulaire dans l'init() de ma classe (qui étend ZendX_JQuery_Form) via

Code:

$this->addElement($elem);

Jusqu'ici tout va bien, ça fonctionne.

Bizarrement, dès que je tente de faire un addDecorators() (ou setDecorators()) sur cet élément afin de redéfinir ses décorateurs, je me retrouve avec l'erreur suivante:

Code:

Exception caught by form: Cannot construct AutoComplete field without specifying Parameters Data and Url Stack Trace: #0 [internal function]: ZendX_JQuery_View_Helper_AutoComplete->autoComplete('query', '', Array, Array)

C'est comme si je n'avais pas fait l'appel à setJQueryParams(), mes paramètres sont vides.

Une idée pour me mettre sur la piste?

Dernière modification par Marc (20-03-2009 10:24:36)

Hors ligne

 

#2 20-03-2009 10:23:40

Marc
Nouveau membre
Lieu: Angers
Date d'inscription: 19-03-2009
Messages: 2

Re: [Résolu][1.7.4] ZendX_JQuery_Form et décorateurs

J'ai trouvé... à force de Zend_debug::dump() smile

En fait je déclarais mal mes décorateurs, j'utilisais:

Code:

$elementDecorators = array(
    array('ViewHelper', array('tag' => '')),
    array('Errors', array('tag' => 'div', 'class'=>'error')),
    array('Label'),
    array('HtmlTag', array('tag' => 'div')),
);

alors qu'il s'agissait d'un UiWidgetElement, donc:

Code:

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

Je passe le sujet en résolu.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages