L'autocompletion ZendX JQuery ne fonctionne qu'après avoir rafraîchi la page (?)
Salut à tous !
Voila le soucis, pour le moins singulier :
Dans un forumlaire classique, l'utilisateur choisit un dossier. je stock cette valeur dans un Zend_Session_Namespace.
L'utilisateur peut ensuite chercher un fichier dans un champ autocomplété.
L'autocomplétion ne marche pas au 1er affichage de la barre de recherche, mais si je fais F5 (rafraichissement de ma page) alors la tout fonctionne correctement...
Vraiment bizarre :(
J'ai tout essayé, la je ne vois plus comment faire.
Voici mon IndexController de recherche :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
public function init()
{
$this->view->addHelperPath('ZendX/JQuery/View/Helper','ZendX_JQuery_View_Helper');
}
public function rechercherAction()
{
// je récupère le choix du dossier du form précédent
$dossier_choisi = new Zend_Form;
$dossier_choisi = $this->_request->getParam('choix');
// puis je la stock dans un namespace
Zend_Loader::loadClass('Zend_Session_Namespace') ;
$defaultNamespace = new Zend_Session_Namespace('dossier') ;
$defaultNamespace->dossier = $dossier_choisi;
$this->view->autocompleteElement = new ZendX_JQuery_Form_Element_AutoComplete('ac');
$this->view->autocompleteElement->setJQueryParam('source', $this->_request->getBaseUrl().'/index/recuperenom');
}
public function recuperenomAction()
{
$tab = array();
$defaultNamespace = new Zend_Session_Namespace('dossier') ;
$dossier = $defaultNamespace->dossier;
// Appel de mon modele qui va requeter la base
Zend_Loader::loadClass('Dossiers');
$dossiers = new Dossiers();
$results = $dossiers->search($this->_getParam('term'),utf8_decode($dossier))->toArray();
$resultsCount = $dossiers->search($this->_getParam('term'),utf8_decode($dossier))->count();
// je met les résultats dans un array
for ($i=0; $i<$resultsCount; $i++)
{$tab[$i] = utf8_encode($results[$i]['Nom_Modele']);
}
// retourne les valeurs dans mon autocompletion
$this->_helper->json(array_values($tab));
}
} |
Et voici le modèle que j’appelle avec recuperenomAction() pour remplir l'autocomplete :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
class Dossiers extends Zend_Db_Table_Abstract
{
protected $_name = 'modeles';
public function search($term,$dossier)
{
$select = $this ->select()
->from(array("modeles"), array("Nom_Modele", "Nom_Dossier"))
->where("Nom_Dossier = ?", $dossier)
->where("Nom_Modele LIKE '$term%'")
->order("Nom_Modele")
->limit(10);
$rows = $this->fetchAll($select);
return $rows;
}
} |
Quelqu'un a-t-il déja eus quelque chose de similaire ? Pourquoi mon site marche qu'après avoir reloadé ma page ?
Une variable se perdrait-elle en cours de route ?
Merci !!