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

JavaScript Discussion :

Créer une fonction de recherche multi début de mot


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 51
    Par défaut Créer une fonction de recherche multi début de mot
    Bonjour à vous,

    Après des recherches infructueuses sur le net, je viens ici vous exposer la fonction que je cherche à développer.

    Voici donc la fonction je souhaite développer en Javascript :

    Elément présent sur la page : un champ texte et la liste des communes de France en dessous affiché en liste
    Contexte : dans un champ texte et au fur et à mesure de la saisie dans le champ
    Fonction : retrouver les communes en recherche multi début de mot
    Exemple :
    Premier exemple : je tape ma première lettre "c" - toutes les villes commencant par "c" restent affiché, je continue ensuite avec les lettres "h" "a" "m" - toutes les villes commencant par "cham" reste affichées => complétion automatique
    J'ai déjà développé cette fonction qui marche à merveille

    Deuxième exemple : je tape toujours dans mon champs texte "cham" et ensuite "oi"
    je souhaite que ma fonction javascript puisse faire une recherche sur toutes les communes commencant par "cham", mais contenant aussi les mots commencant par "oi".

    Le but étant de trouver la ville de Champapou oisifère ou celle de champigny sur oise (il faut en plus que la fonction ignore les particules)

    Il existe bien sur d'autres techno pour le faire, mais je suis contraint de le faire en Javascript.

    Avez vous des suggestions ou des pistes ?

    Merci

  2. #2
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    en plus de ton test sur le début de chaîne tu peux ajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var keyword = "oi";
    if(str.indexOf(keyword, 0) == -1) {
    // Tu supprimes l'option
    }
    Bye

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 51
    Par défaut
    Bonjour,

    Merci pour cette réponse. Mais elle ne fonctionne que sur des variables bien précise. Dans ton exemple
    Hors j'ai une liste de 32 750 communes avec des noms composés, donc je ne peux pas déclarer tous les variables possible et imaginable. En plus que tous les noms de villes ne sont pas en noms composés.

    D'autres pistes ?

    Merci

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Une RegExp en plus de ton code ?

    Genre :


  5. #5
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Ben le probleme de la RegExp est que ca sortira tout les mot contenant "oi" par exemple :S La chose que tu veut faire demanderai un traitement enorme...
    Parce que il faudrait prendre les mot commençant par "cham" les complété et regarder ensuite si il existe une suite a ces mot qui contienne "oi"

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Citation Envoyé par cerede2000
    Ben le probleme de la RegExp est que ca sortira tout les mot contenant "oi" par exemple :S La chose que tu veut faire demanderai un traitement enorme...
    Parce que il faudrait prendre les mot commençant par "cham" les complété et regarder ensuite si il existe une suite a ces mot qui contienne "oi"
    Sauf que dans ma RegExp je vérifie qu'il y a un espace avant la chaîne "io" ... Donc c'est forcément le début d'un mot.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/10/2007, 17h50
  2. Créer une Fonction recherche sur Access
    Par remwideco dans le forum Access
    Réponses: 4
    Dernier message: 30/01/2006, 10h36
  3. créer une fonction avec parametre optionnel
    Par maximenet dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2006, 20h51
  4. Réponses: 6
    Dernier message: 10/08/2005, 11h36
  5. Créer une fonction mathématique pendant l'exécution
    Par zeprogrameur dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2004, 11h36

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