Bonjour,
Mon problème d'autocomplete sur les communes n'est toujours pas résolu, malgré des centaines de lectures de mes messages ici ou sur les forums français et anglais de Zend_Framework !

J'en découvre un autre que je vous décris ci-dessous...

Soit un formulaire avec deux ZendX_JQuery_Form_Element_AutoComplete :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
        // Établissement où se déroule le stage
        $etablissement = new Application_Model_DbTable_Etablissement();
        $result = $etablissement->fetchAll();
        $liste_etablissements = array();
        $liste_etablissements[0] = '';
        foreach($result as $etb)
        {
            $liste_etablissements[$etb->etb_id] = $etb->etb_nom;
        }
 
        $stg_id_etablissement = new ZendX_JQuery_Form_Element_AutoComplete('stg_id_etablissement');
        $stg_id_etablissement
            ->setLabel('Établissement où se déroule le stage')
            ->setRequired(false)
            ->setFilters(array('StripTags'))
            ->setJQueryParams(array('source' => $liste_etablissements))
            ->setValue(''); 
 
        // Conseiller pédagogique
        $personne = new Application_Model_DbTable_Personne();
        $result = $personne->listeConseillers();
        $liste_conseillers = array();
        $liste_conseillers[0] = '';
        foreach($result as $conseiller)
        {
            $liste_conseillers[$conseiller['prs_id']] = $conseiller['prs_nom'].' '.$conseiller['prs_prenom'];
        }
 
        $stg_id_conseiller_pedago = new ZendX_JQuery_Form_Element_AutoComplete('stg_id_conseiller_pedago');
        $stg_id_conseiller_pedago
            ->setLabel('Conseiller pédagogique')
            ->setRequired(false)
            ->setFilters(array('StripTags'))
            ->setJQueryParams(array('source' => $liste_conseillers))
            ->setValue('');
Les deux sont fabriqués sur le même principe.

L'autocomplete sur le choix de l'établissement fonctionne en affichant la liste des possibles dès la frappe du premier caractère, l'autre n'affiche rien et se comporte comme une simple zone de texte !

J'ai remarqué une différence dans le code HTML produit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
    $("#stg_id_etablissement").autocomplete({"source":["","Universit\u00e9 Paul Sabatier","EPLEA Capou"]});  
 $("#stg_id_conseiller_pedago").autocomplete({"source":{"0":"","4":"Lema\u00eetre Jean","3":"P\u00e9dago Alfred"}});
Pour l'établissement, la source commence par un crochet [ alors que pour le conseiller pédagogique elle commence par une accolade {.
De plus, les identifiants des conseillers pédagogiques sont présents alors qu'il n'y a que le nom des établissements.

Serait-ce dû au fait que j'utilise fetchAll pour les établissements et une fonction basée sur une requête pour les conseillers pédagogiques ?

Pourtant, les deux tableaux envoyés en paramètres aux deux autocomplete ont la même structure :
Établissements :
array(3) {
[0] => string(0) ""
[1] => string(25) "Université Paul Sabatier"
[2] => string(11) "EPLEA Capou"
}
Conseillers pédagogiques :
array(3) {
[0] => string(0) ""
[4] => string(14) "Lemaître Jean"
[3] => string(14) "Pédago Alfred"
}
EDIT :
Je viens de faire une fonction pour limiter la liste des établissements aux lycées agricoles. Le tableau envoyé à l'autocomplete est maintenant celui-ci :
array(2) {
[0] => string(0) ""
[2] => string(11) "EPLEA Capou"
}
Et ZendX_Jquery génère cette fois cette structure dans le HTML de la page :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$("#stg_id_etablissement").autocomplete({"source":{"0":"","2":"EPLEA Capou"}});
La source commence maintenant par une accolade et l'autocomplete ne fonctionne plus !