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 :

Recherche dynamique javascript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut Recherche dynamique javascript
    Bonjour,

    J'affiche une page php avec une liste de nom-prénom.

    J'aimerais avoir un champ "Recherche" au dessus dans lequel lorsque je taperais une lettre, seul les nom commençant par cette lettre s'afficherait ( sans avoir à cliquer sur un bouton "OK" si possible).

    Mon problème c'est que je ne sais pas quel est le nom donné à cette technique donc j'ai du mal à trouver quelque chose sur le net.

    Pouvez-vous m'aider ?

    Merci

    Mélanie

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    autocomplétion
    ça devrait t'aider à rechercher
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Salut,

    Ta liste est visible, et en tapant une ou plusieurs lettres tu la filtres.

    ERE

  4. #4
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut
    C'est bien ça merci !

  5. #5
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut
    J'ai trouvé un très bon code sur le site que j'ai voulu adapter mais cela ne marche pas.

    Voici le code que j'ai changé :


    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
     
            // Connexion à la base de données
    	$Connexion = Connexion (NOM, PASSE, BASE, SERVEUR);
     
    	// Création de la requête sql
    	$Requete_sql = "SELECT nom_patient FROM patient ORDER BY nom_patient"; 
     
    	// Exécution de la requête sql
    	$Execution_requete = ExecRequete( $Requete_sql, $Connexion );
     
    	// Récupération des données 	
    	while($Resultat = LigneSuivante($Execution_requete))
    	{
    		$nom = $Resultat['nom_patient'];
    		echo $liste[] = $nom;	
     
    	}
     
    	$debut = strtolower($debut);
     
    	//$liste = array("abeille","abricot","acheter","acheteur","adjectif","adroit","adroitement","agent","aigle","aile","air","amour","âne","approcher","ardoise","arête","arracher","asperge","astre","aujourd'hui","au lieu de","aussi","autobus","autocar","autruche","avant","avertir","aviation","avril","bain","bal","balcon","balle","ballon","banc","bande","banque","barque","bas","basse","bassin","bataille","bâton","bavarder","baver","bavette","bazar","beau","belle","bec","bêler","bête","bidon","bien","bille","billet","biscuit","bise","blanc","blancheur","blanchir","bleu","bord","bordure","borne","botte","bottine","boucher","bouchon","boucle","boue","boulanger","boulangerie","bouquet","bouteille","boutique","bras","brioche","briquet","brise","briser","brochet","brosse","brosser","brouette","bureau","cachette","cadre","campagne","canal","canard","capitaine","carnaval","carnet","case","castor","chacun","chameau","chant","chapeau","chapelle","chaque","chaton","chaud","chaudement","chef","chenille","chevalier","cheville","chocolat","chose","choucroute","cidre","ciel","cinq","cirque","clocher","clochette","clou","combien","comment","compagne","compagnie","compagnon","compliment","conduire","conduite","confortable","conjuguer","contenir","continuer","coq","coquin","corbeau","corbeille","corde","corne","cornet","corniche","coton","cou","couchette","coudre","coupant","cour","courir","course","couverture","couvrir","craie","crâne","crier","croire","croix","cuire","cuisine","cuisson","cuit","cuivre","cuve","date","décembre","découverte","demi","démonter","dent","depuis","dernier","derrière","dessin","dessiner","dessous","devant","dire","direct","directement","diriger","disque","diviser","division","dix","docteur","domestique","donner","dos","double","douloureux","doux","douce","douze","dragon","dur","durée","durer","eau","écaille","échapper","écharpe","échelle","écolier","écouter","écrevisse","écrire","écriteau","écurie","élémentaire","éleveur","en bas","encore","encrier","encre","endormir","enfantin","enfermer","enfin","en haut","ensuite","entier","entrée","épicerie","épine","épingle","éplucher","escalier","escargot","estrade","étrange","fabrique","fabriquer","fatigue","féminin","fenêtre","fer","fermer","feuille","feutre","fidèle","film","fils","fin","fleuriste","foin","folie","fondre","fontaine","force","forme","formidable","fort","fortement","fourche","franc","franche","frère","frileux","fruit","fuite","fumer","gamin","garage","garde","garde","garder","gardien","garnir","gauche","genre","gerbe","gibier","gilet","girafe","gomme","grammaire","grandeur","grandir","gras","grasse","grave","grenouille","gris","grossir","groupe","haut","hauteur","herbe","heure","hibou","hier","histoire","hiver","ici","idée","injuste","insecte","inspecteur","instrument","invisible","jambe","janvier","jaune","jeune","joie","joue","jouet","joueur","juillet","juin","jument","jusqu'à","labourer","lac","langue","larme","lavage","laver","lécher","leçon","léger","légume","lettre","lèvre","lièvre","linge","liquide","litre","livret","loin","long","longue","lorsque","loup","lueur","lunettes","lutte","machine","mademoiselle","magasin","mai","maintenant","maisonnette","maître","maîtresse","majuscule","malin","mari","masculin","matière","matinal","mauve","mélange","mélanger","mémoire","ménagerie","menteur","menu","mer","merci","mercredi","merle","merveille","messe","métier","mie","miel","le mien","miette","mine","minuit","miracle","moderne","moineau","mois","moment","monstre","montagne","montre","montrer","morue","moteur","motif","moucheron","mouchoir","moudre","mouette","moutarde","mouvement","muraille","murmure","murmurer","nappe","né","neuf","nez","nid","noël","noir","nom","nombre","nouer","nuageux","nuit","nul","odeur","oie","oncle","ongle","or","orage","orageux","oreille","ours","ourson","ouvert","ouvrage","ouvrier","paille","pain","paire","panier","pantalon","papier","papillon","parcourir","pardon","parent","parfait","parole","partage","partager","partie","partir","partout","parvenir","passé","passer","pastille","pâte","patron","patte","pays","peau","pêche","pêcher","pêcheur","peine","pendant","pendre","pépin","perche","perdant","perdre","perte","peureux","pie","pièce","pied","piège","pierre","piéton","pioche","piocher","piquet","place","plage","plaine","plaisir","planter","plaque","plat","pleurer","plonger","pluie","pluriel","pochette","point","pointe","poirier","poitrine","pompe","pomper","pondre","porter","pot","pouce","poudre","pourquoi","pourtant","prairie","pratique","presque","prince","princesse","problème","produire","produit","promenade","promeneur","propre","proprement","provenir","puis","puisque","punir","pur","purée","quatre","quoi","racine","radis","rage","raie","raisin","rame","ramener","raquette","rare","rarement","rebord","recopier","recoudre","recouper","reculer","redevenir","réduire","regard","régime","renard","rencontre","rencontrer","repartir","repasser","répondre","réponse","reprendre","reproduire","requin","respiration","respirer","réunion","richesse","ride","risque","rivage","rivière","robinet","robot","rocher","rond","rondelle","rosée","roue","rude","ruelle","rugir","salle","saluer","s'amuser","sans","sardine","sauvage","sauver","savoir","secouer","se fatiguer","sel","semelle","se moquer","se munir","s'envoler","se rendormir","se souvenir","seul","siège","signe","singulier","soie","soirée","soldat","solidement","sombre","somme","sonner","sonnerie","sorcière","sorte","sot","sotte","sottise","souper","soupière","sous","souvent","spectateur","sport","sportif","sucrier","sueur","suivant","sujet","superbe","surprise","surtout","tableau","tablier","tabouret","tache","taupe","taille","tante","tapage","taper","taureau","tenir","tenue","tigre","timbre","tirer","tissage","tisser","titre","toile","tondre","tordre","train","traire","tranche","traverser","trèfle","trésor","tresse","tricher","tricheur","tristement","trompe","trou","truite","unité","usage","usé","utile","utilité","vague","valeur","valoir","vanille","vapeur","vendeur","vendre","vent","vente","ventre","verger","vernir","vert","verte","veste","viande","victoire","vide","vider","vieux","vif","vive","villa","vinaigre","violette","vipère","virgule","visible","vitesse","vitre","vitrine","vivement","vivre","vocabulaire","voile","voile","voisin","voisinage","vouloir","voyage","voyageur","zèbre","zéro");	
     
    	function generateOptions($debut,$liste) {
    		$MAX_RETURN = 10;
    		$i = 0;
    		foreach ($liste as $element) {
    			if ($i<$MAX_RETURN && substr($element, 0, strlen($debut))==$debut) {
    				echo(utf8_encode("<option>".$element."</option>"));
    				$i++;
    			}
    		}
    	}
    Je pense que l'erreur est bête mais je bloque ...

    Que pourrait-être le problème ?

    Merci

    Mélanie

  6. #6
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Re,

    Pourquoi ne pas plutôt ajouter une clause WHERE dans ta requête SQL ?

    ERE

  7. #7
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut
    Est-ce que le résultat pourra s'afficher sans qu'on est besoin de cliquer sur un bouton "Rechercher" ?

  8. #8
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Re,

    Attention il faut que tu choisisses:

    • Soit toutes tes données sont envoyées initialement avec la page web et alors le code pour filtrer est du code javascript uniquement
    • Soit tes données sont envoyées vers ta page au fur et à mesure de la saisie de l'utilisateur, ce qui implique de faire des allers-retours vers le server et d'utiliser une technique comme AJAX pour l'échange.
    Tout dépend donc de ta façon de procéder, elle-même liée à divers paramètres comme le volume des données (l'approche est différente selon que tu as 100 ou 1000 patients), etc...

    ERE

  9. #9
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut
    Re,

    donc si ma base de données contient plus de 1000 patients, tu me conseillerais quelle technique ? Partir sur de l'AJAX n'est pas la bonne solution ?

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

Discussions similaires

  1. FORMULAIRES - Recherche dynamique
    Par Gunther dans le forum IHM
    Réponses: 3
    Dernier message: 06/12/2006, 09h12
  2. recherche contrôle javascript permettant de supprimer champs
    Par shnouf dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/11/2006, 10h52
  3. liens menu dynamique javascript
    Par gregius dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/06/2006, 14h15
  4. Réponses: 5
    Dernier message: 13/11/2005, 19h10

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