IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

UI Autocomplete : des résultats étranges!


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Soobook
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Réunion

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Par défaut UI Autocomplete : des résultats étranges!
    Bonjour à tous.

    J'utilise autocomplete (la version standart, pas un mod) et ça marche plutôt bien. J'ai juste un soucis :

    Lorsque je tape le nombre de lettres nécessaires pour l'exécution du script (minChars), des résultats s'affichent, mais sans êtres filtrés :


    Ensuite c'est bon :


    J'ai pas mal cherché et testé les différents paramètres, mais c'est toujours pareil.

    Je suppose qu'à la première étape, les données sont juste rapatriées et affichées par ordre alphabétique, et que le filtrage ne se fait qu'aux saisies suivantes, mais du coup comment modifier ça (j'suis pas encore très fort en js, moi, )?

    Voici mon code, si quelqu'un a une idée :

    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
     
    //JAVASCRIPT.
    $(document).ready(function(){
        $("#chPat").autocomplete("affliste.php", {
            minChars: 1,
            matchSubset: true,
            matchContains: true
        });
    });
     
    //HTML.
    <div id="icones">
        <label for="chPat" id="labchPat">Rechercher un patient :</label>
        <input type="text" id="chPat" name="chPat"/>
    </div>
     
    //AFFLISTE.PHP
    $req = "select id, concat(right(concat('000', id), 3), ' - ', ucase(nom), ' ', ucase(prenom)) as identite from patients order by nom, prenom";
    $query = $db->query($req);
    if($db->error){
        echo "ERROR: There was a problem with the query.\n\n$req\n\n".$db->error;                            
    }
    else {
        while ($result = $query ->fetch_object()){
            echo $result->identite."|".$result->id."\n";
        }
    }
    Merci par avance...

    PS : une petite question subsidiaire qui n'a rien à voir (ni à faire dans ce forum ).
    Vous savez pourquoi ma requête SQL ci-dessus fonctionne, alors que si je fais ça, le ucase ne s'appliqe pas? Bizarre, non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id, ucase(concat(right(concat('000', id), 3), ' - ', nom, ' ', prenom)) as identite from patients order by nom, prenom

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonsoir.

    minChars ?

    La référence est http://jqueryui.com/demos/autocomple...tion-minLength

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Membre confirmé Avatar de Soobook
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Réunion

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Par défaut
    Dans le plugin autocomplete c'est bien minChars!!!

    Mais bon, débutant dans le domaine, je connais pas encore très bien et je savais pas que UI permettait de faire ces choses là.
    En plus ça a l'air super simple, du coup je vais essayer ça...

    Merci danielhagnoul...

    (Je mets pas encore résolu, au cas où...)

  4. #4
    Membre confirmé Avatar de Soobook
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Réunion

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Par défaut
    Bonjour,

    UI se révèle un outil génial, pour autocomplete, mais également pour des tonnes d'autres choses....

    Mais j'ai encore un petit soucis : mon autocomplete fonctionne, c'est un niveau de la close select que ça déconne.
    Mes données contiennent deux champs : libelle et id).
    La recherche se fait sur libelle, et le select doit me renvoyer l'id. C'est là que ça coince : j'arrive à renvoyer le libelle mais pas l'id.

    Voici mon code Javascript, j'ai rajouté des commentaires dedans :

    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
     
                $(function(){  
                    $("#tags").autocomplete({  
                        minLength: 2,
                        source: function(req, add){  
                            $.getJSON("rechercheRpc.php?callback=?", req, function(data) {  
                                var suggestions = [];  
                                $.each(data, function(i, val){  
                                    suggestions.push(val.libelle);  
                                    //Jusque là pas de soucis : je peux utiliser mon id via val.id
                                });  
                                add(suggestions);  
                            });  
                        },  
     
                        select: function(e, ui) {  
                            //C'est ici que ça va plus : je peux récupérer mon libelle via ui.label, mais l'id je trouve pas.
                        },  
                        change: function() {  
                            $("#tags").val("").css("top", 2);  
                        }   
                    });  
                });
    Je peux contourner le truc avec des artifices (genre champs cachés...) mais je suppose que ça doit être possible de faire ça directement. J'ai essayé d'adapter les différents exemples sur le site de JQuery UI, notamment "Custom Data and Display", mais sans succès...

    Voila, si quelqun peut m'aider, ce serait super...
    Merci d'avance.

  5. #5
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour.

    Et avec ui.item.label et ui.item.id ?

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  6. #6
    Membre confirmé Avatar de Soobook
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Réunion

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Par défaut
    C'est bien la mon problème, en fait : ui.item.value me renvoie ma chaine de charactère, mais ui.item.id me renvoie "undefined".
    Ce que je ne comprends pas, c'est à quel moment et comment sont alimentées ces valeurs. Je suppose que c'est à ce niveau là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     $.each(data, function(i, val){  
           suggestions.push(val.libelle);  
    });
    J'ai essayé de mettre dans le push un tableau avec les deux valeurs, mais ça marche pas...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] calcul des LMI: résultat étrange!
    Par hassen_be dans le forum MATLAB
    Réponses: 3
    Dernier message: 21/04/2011, 00h32
  2. Réponses: 5
    Dernier message: 20/05/2010, 18h08
  3. Réponses: 53
    Dernier message: 14/08/2009, 14h14
  4. [avifile] Problème avec des résultats étrange
    Par Jim_Nastiq dans le forum Dev-C++
    Réponses: 1
    Dernier message: 30/01/2007, 11h11
  5. Réponses: 3
    Dernier message: 18/05/2003, 00h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo