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

AJAX Discussion :

[AJAX] saisie semi-automatique dans une liste déroulante


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut [AJAX] saisie semi-automatique dans une liste déroulante
    bonsoir à tous,
    je cherche à appliquer une saisie semi-automatique sur une liste déroulante qui dépend d'une autre liste.
    je m'explique:
    j'ai deux listes liées (j'ai utilisé la technologie AJAX ) et maintenant je veux ajouter l'option de la saisi semi-automatique pour la deuxième liste (comme dans l'exemple "...or you can turn a regular select with countries list to an autocompleted one: " http://momche.net/publish/article.php?page=acdropdown)
    vous trouvez dans les fichiers joints le script que j'ai utilisé pour crée les deux listes.
    je galère depuis un bon moment j'espère trouver de l'aide
    merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    merci Pymento, mais ce que je cherche c'est pas de faire un champ avec autocompletion mais plutôt autocomplter une liste qui existe déjà.
    ç-à-d, au début et avant que l'utilisateur tape une lettre, afficher toute la liste.

  4. #4
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    du genre, tu met dans un champs les départements, et il te sort la liste des villes ?

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par Pymento Voir le message
    du genre, tu met dans un champs les départements, et il te sort la liste des villes ?
    Non, ça c'est des listes liées et c'est déjà en place, comme indiqué dans la 2° phrase.

    Le but ici est que, en se plaçant dans la liste des villes, par exemple, si l'utilisateur tape la lettre "P", la liste se positionne sur "PARIS" (au hasard ...)

    @Imana : il faut utiliser l'évènement onkeypress pour récupérer la lettre tapée par l'utilisateur. Puis tu parcours les options de la liste, et quand tu trouves la bonne, tu la passes en selected=true

    A+

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    oui c'est ce que j'ai fait déjà( deux listes dépendantes).
    et puisque la liste des villes est très longue(dans mon cas elle peut avoir 3000) je veux ajouter un option de la filtrer selon la saisie de l'utilisateur.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Imana E.I. Voir le message
    je veux ajouter un option de la filtrer selon la saisie de l'utilisateur.
    Cf. ci-dessus

    A+

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    E.Bzz : nn c'est pas suffisant
    ce que je cherche c'est pas seulement filtrer selon une seul lettre.
    exemple l'utilisateur tape "tr" la liste se recharge et ne contient que les mots contiendront 'tr' ex: tr00225 , 001tr1254, 01245tr

  9. #9
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Imana E.I. Voir le message
    E.Bzz : nn c'est pas suffisant
    Comme piste, si

    Le principe est le même pour la seconde lettre tapée, comme quand on cherche dans un dictionnaire ou un annuaire ...

    Ton exemple ne fonctionnera pas si l'utilisateur ne tape qu'une seule lettre. Et pourtant, il faudra bien lui proposer quelque chose

    Il suffit d'ajouter une tempo (setTimeout() ) après qu'une lettre ait été tapée, pour lancer la recherche. Une fois les lettres récupérées, tu te sers de cette chaîne pour faire la recherche dans la liste des options. Mais le principe est le même avec une lettre ou plus ...

    A+

  10. #10
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Par contre, s'il s'agit bien de villes, en pratique il est bien plus efficace de proposer les choix "commençant par ..." que ceux "contenant ..."

    A+

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    non il s'agit pas des villes mais plutôt de numéros de série du produit
    je suis débutante et j'ai pas compris exactement ton idée
    stp est ce que tu peux expliquer un peu je serai très reconnaissante

  12. #12
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Imana E.I. Voir le message
    non il s'agit pas des villes mais plutôt de numéros de série du produit
    Arf !

    Me suis trompé à cause de l'exemple de ton 1° post

    S'il s'agit de référence comme celles que tu as données en exemple, et si la chaîne recherchée ("tr" dans ton exemple ci-dessus) peut être présente n'importe où dans le "mot", il vaudrait mieux filtrer ta seconde liste avant, il me semble.
    1. Tu gardes ta première liste pour faire un premier choix
    2. Tu proposes un input text permettant de saisir le filtre "tr" (par exemple)
    3. Tu n'affiches dans la 2° liste que les choix correspondants à ta 1° liste ET aux caractères saisis dans l'input
    Ça sera à mon avis moins compliqué que la pseudo auto-completion sur la seconde liste comme tu voulais le faire.
    Il ne s'agit plus que d'une petite modification de tes listes liées existantes (pour prendre en compte l'input comme filtre supplémentaire à appliquer à la 2° liste).

    Ai-je été plus clair ce coup-ci ?

    A+

  13. #13
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    ok, dans ce cas moi je propose que tu applique à ton input (si j'ai bien compris ?) un onChange(). Puis tu appelles ta fonction AJAX avec la 'Value' de ton input. Ensuite y'a plus qu'a comparer!

    Je suis encore à coté de la plaque ?

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Pymento Voir le message
    Je suis encore à coté de la plaque ?
    Je ne trouve pas ... vu que tu viens de répéter en 3 phrases ce que j'ai un peu plus détaillé dans le post précédent

    A+

  15. #15
    Membre averti Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Points : 329
    Points
    329
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Je ne trouve pas ... vu que tu viens de répéter en 3 phrases ce que j'ai un peu plus détaillé dans le post précédent

    A+

    Ha dsl j'avais pas lu ! j'étais resté sur la page d'édition du post et j'ai fait autre chose entre temps^^

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Ça sera à mon avis moins compliqué que la pseudo auto-completion sur la seconde liste comme tu voulais le faire.
    oui c sur mais ici mon client insiste sur le point qu'on auras toute la liste au début ( en cas ou l'utilisateur ne sait pas quel option choisir)
    le problème c'est que j'ai réussi a filtrer une simple liste mais le script ne fonctionne pas avec une liste dépendante d'une autre

  17. #17
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par Imana E.I. Voir le message
    oui c sur mais ici mon client insiste sur le point qu'on auras toute la liste au début ( en cas ou l'utilisateur ne sait pas quel option choisir)
    Oui, mais quand il aura attendu 20 secondes que la page charge les 3000 lignes alors qu'il n'en a besoin à chaque fois que d'une dizaine, il changera peut être d'avis
    (je sais, c'est peut être difficile de lui dire )
    Citation Envoyé par Imana E.I. Voir le message
    le problème c'est que j'ai réussi a filtrer une simple liste mais le script ne fonctionne pas avec une liste dépendante d'une autre
    C'est peut être dû à la manière dont tu intègres cette 2° liste dans ta page ...
    Par exemple dans ta fonction readData(oData), il vaudrait peut être mieux utiliser new Option(text, value) plutôt que faire des appendChild().
    De plus on dirait que tu essayes de donner un name à chaque option, ce qui ne me semble pas une bonne idée ...

    A+

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations forums :
    Inscription : Mai 2009
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    C'est peut être dû à la manière dont tu intègres cette 2° liste dans ta page ...
    oui je pense mais puisque je sais pas grand chose à propos d'utilisation d'ajax j'ai pas vu qu'est ce qu'il manque
    Citation Envoyé par E.Bzz Voir le message
    Par exemple dans ta fonction readData(oData), il vaudrait peut être mieux utiliser new Option(text, value) plutôt que faire des appendChild().
    voilà une piste déjà j'essayerai ça
    merci

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2009, 17h56
  2. Réponses: 1
    Dernier message: 16/01/2009, 15h22
  3. [ODBC] Garder une saisie après sélection dans une liste déroulante
    Par nawak.seb dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 27/08/2008, 14h48
  4. Inserer saisie semi-automatique dans une macro
    Par Bib0ucH dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 21/08/2008, 14h45
  5. [AJAX] Saisie semi automatique dans un formulaire
    Par sebaaas dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/05/2007, 19h54

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