Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Je tente de mettre en place l'auto complétion dans un de mes projets. Dans un cas très simple, cela fonctionne :
Dans un controller :
[lang=php] $formulaire = new ZendX_JQuery_Form_Element_AutoComplete('ac'); $formulaire->setLabel('AutoComplete'); $formulaire->setJQueryParam('data', array('toto', 'tata', 'lolz')); $this->view->form = $formulaire;
La vue :
[lang=php] echo $this->form; ?>
Ceci fonctionne. J'essai de complexifier un peu :
Controller :
[lang=php] public function rechercheAction() { $this->_helper->json(array_values("toto", "tata", "tonton")); } public function searchprodAction() { $baseurl = Zend_Controller_Front::getInstance()->getBaseUrl(); $formulaire = new ZendX_JQuery_Form_Element_AutoComplete('ac'); $formulaire->setLabel('AutoComplete'); $formulaire->setJQueryParams(array('source' => $baseurl.'/admin/utilisateur/recherche')); $this->view->form = $formulaire; }
L'auto complétion ne marche plus. Je ne comprend pas pourquoi. Si vous avez une piste
Je me base sur ce tuto.
Merci d'avance!
Dernière modification par le_viking (21-12-2011 12:21:41)
Hors ligne
Dans rechercheAction(), je te conseille plutôt de mettre:
$this->_helper->viewRenderer->setNoRender(true); echo Zend_Json::encode(array_values(array('toto', 'titi', 'tata')));
En fait, à la base tu as oublié le array() dans array_values()
Dernière modification par Roromix (21-12-2011 13:01:14)
Hors ligne
Merci pour ta réponse Roromix. Cependant, cela ne fonctionne toujours pas.
Il y a-t-il un moyen de savoir si la fonction "recherche" est bien appelé ? Je doute sur ce point!
Hors ligne
Avec les outils de développement de ton navigateur tu dois pouvoir voir les requêtes HTTP dont l'AJAX.
Pareil si tu utilises Firebug...
Hors ligne
Bon. J'ai enfin trouvé mon erreur.
J'avais oublié de déclarer la fonction recherche dans mon ACL
Forcement ...
Merci à toi Roromix !
Hors ligne
Juste un petit conseil qu'avait glisser Delprog sur un sujet similaire : http://www.z-f.fr/forum/viewtopic.php?pid=23513#p23513
[...]et de laisser le rôle d'afficher les données à la vue. Ce n'est pas parce qu'on ne vient pas d'un navigateur et qu'on ne demande pas du html qu'il faut laisser tomber le pattern MVC, la vue affiche les données.
Du coup, le setNoRender(true) suivi du echo n'est pas la meilleure solution
Hors ligne
Oui tu as raison. Le code exacte est :
[lang=php] $this->_helper->json(array_values($monTab));
Hors ligne
Pages: 1