RECHERCHE AVEC AUTOCOMPLETION AJAX ( AVEC NAVIGATION CLAVIER ET SOURIS )

FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008 - 26 sept. 2006 à 19:21
kari15 Messages postés 5 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 8 mars 2011 - 21 mars 2012 à 10:56
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/39699-recherche-avec-autocompletion-ajax-avec-navigation-clavier-et-souris

kari15 Messages postés 5 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 8 mars 2011
21 mars 2012 à 10:56
Bonjour à tous

Je suis entraine de faire un systeme auto complétion et j'ai essayé ce code
mais ça ne marche pas,j'ai une erreur dans le fichier autoComplétion_answer.php
exactement à la ligne : ".$field_search." LIKE '".$_POST['post']."%'
l'erreur est la suivante: Notice: Undefined index: post in C:\wamp\www\auto\autoCompletion_answer.php on line 37
Aidez moi SVP si vous avez une idée, c'est trés urgent.
Merci à l'avance
amandamand Messages postés 1 Date d'inscription vendredi 9 mars 2012 Statut Membre Dernière intervention 14 mars 2012
14 mars 2012 à 14:33
Bonjour,

Merci beaucoup pour ce code! Mais je voulais te demander comment on fait pour avoir le prénom aussi?

Merci d'avance
silver Messages postés 31 Date d'inscription mercredi 7 novembre 2001 Statut Membre Dernière intervention 2 avril 2016
9 oct. 2011 à 21:52
Merci beaucoup pour ce code !!!

Enfin quelque chose qui marche et même très bien ! :)
onyryc Messages postés 2 Date d'inscription jeudi 26 octobre 2000 Statut Membre Dernière intervention 13 mars 2011
13 mars 2011 à 14:05
Bonjour,

Très bon script, mais j'ai un problème sur l'affichage de la liste, elle se met "sous" le texte d'un menu déjà présent sur le site... une idée pour améliorer l'affichage ?

Merci !
lilk974 Messages postés 1 Date d'inscription vendredi 2 avril 2010 Statut Membre Dernière intervention 20 septembre 2010
20 sept. 2010 à 12:12
salut j'ai un soucis au chargement de exemple.php "autoCompletion_init is not defined" pourrais-tu m'aider stp?? merci de ton aide
cs_witchgunn Messages postés 7 Date d'inscription vendredi 14 octobre 2005 Statut Membre Dernière intervention 3 novembre 2010
7 janv. 2010 à 12:34
Salut, j'ai enfin testé cette super source.

Ma question est la suivante, j'ai combiné 2 bases de données pour la recherche comme suit (autocompletion_answer.php), et le soucis c'est que je reçois pas les résultats les plus pertinents !! :

SELECT
".$field_id.",
".$field_search."
FROM
".$table."

UNION SELECT
".$field_id2.",
".$field_search2."
FROM
".$table2."

UNION SELECT
".$field_id3.",
".$field_search3."
FROM
".$table3."

WHERE
".$field_search." OR ".$field_search2." OR ".$field_search3." LIKE '".$_POST['post']."%'
ORDER BY
".$order_by." ".$sort."
LIMIT
".$nbr_display."
Utilisateur anonyme
30 nov. 2009 à 16:13
Merci bien pour cette source.

Facile à adapter sur un autre code
shadownight Messages postés 1 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 5 juillet 2009
5 juil. 2009 à 23:22
UN ÉNORME MERCI a toi .
Je te félicite pour ton travail et la source que je cherchais depuis tant de temps.

Je te met Un grand 10/10
cs_witchgunn Messages postés 7 Date d'inscription vendredi 14 octobre 2005 Statut Membre Dernière intervention 3 novembre 2010
14 mai 2009 à 16:59
Salut, ça à l'air cool cette source, je vais la tester !
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
23 mai 2008 à 13:12
Bonjour,

Désolé, je n'ai plus vraiment le temps de répondre à tous le monde.
Par contre je n'assure plus du tout la maintenance sur cette librairie car j'ai depuis longtemps développé une autre librairie d'autocomplétion bien mieux adaptée.

Voici le lien : http://www.javascriptfr.com/codes/LIBRAIRIE-AUTOCOMPLETION-AJAX-OU-LOCAL-CHOIX-EFFETS-ENTIEREMENT_40382.aspx

Sinon votre valeur undefined est dû au fait que vous n'avez pas respecté le nom de la base de donnée, elle doit s'appeler "autocompletion" ou alors vous devez modifier le nom dans le fichier "autoCompletion_config.php"

Voilà mais je vous conseille fortement l'autre librairie.

@+

-- The Rubik's Man --
soundpanther Messages postés 68 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 31 janvier 2009
23 mai 2008 à 12:15
Bonjour,

je vois qu'il n y a pas de réponse depuis 2007 alors je ne V pas trop attendre.
Dommage même erreur que junior92150.

Cordialement,
junior92150 Messages postés 1 Date d'inscription vendredi 20 juillet 2007 Statut Membre Dernière intervention 13 décembre 2007
13 déc. 2007 à 16:25
salut ,

j'ai utilisé ton zip pour mettre en place l'autocompletion.

le seule hic , il m'affiche undefined quand je tape une lettre dans le menu qui apparait.

j'ai verifier tous les parametres de connexion, verifier le SELECT que tu donne
tout est bon.

d'ou vient cette valeur undefined qui s'affiche dans le menu ?



est ce que tu aurais une idée ?
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
19 janv. 2007 à 12:54
Cela veut dire que tu as renomé le nom du formulaire ou le nom de l'input text.

Il faut laisser name="autoCompletion" pour le formulaire et name="autoCompletion_input" pour le champs texte.


mais sinon je vous conseille tous de télécharger ma nouvelle librairie pour l'autocomplétion disponible par le lien que j'ai déposé lors de mon dernier post.

@+
Utilisateur anonyme
19 janv. 2007 à 11:27
J'ai réussi à adapter ce code a ma base de données mais lorsque je l'ajoute à mon application en php ça me met une erreur javascript "document.autocompletion.autocompletion_input a lavaleur Null ou n'est pas un objet. Aurait tu une idée de ce que peut etre le probleme ?
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
19 janv. 2007 à 11:24
Salut

Tout d'abord merci pour ton commentaire. Je te conseille d'aller sur ma fiche pour télécharger ma nouvelle librairie d'autocomplétion car celle-ci est vraiment dépassée... la nouvelle te permettra de faire vraiment tout ce que tu veux... voici le lien : http://www.javascriptfr.com/codes/LIBRAIRIE-AUTOCOMPLETION-AJAX-OU-LOCAL-CHOIX-EFFETS-ENTIEREMENT_40382.aspx

voilà
@+

-- The Rubik's Man --
cs_piep14 Messages postés 345 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 13 mai 2011
18 janv. 2007 à 22:07
Slt, je viens de découvrir cette source que je trouve formidable !!
Y a un juste un trucs que je souhaite faire. Lorsque l'on clique sur un nom dans la liste, serait il possible de le faire afficher dans le champ text plutot que de valider le formulaire ?

Merci pour tout ;)
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
19 nov. 2006 à 16:23
Bonjour à tous!!!

Voilà donc comme prévu j'ai posté sur le site ma nouvelle librairie d'autocomplétion!!!!
Donc cette nouvelle librairie est entièrement personnalisable de nombreuses options... etc
Enfin je vous donne l'adresse et vous n'avez plus qu'à juger de vous même.

http://www.javascriptfr.com/code.aspx?ID=40382

@+
buz_16 Messages postés 15 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 24 novembre 2006
16 nov. 2006 à 13:48
Effectivement Mac leod, rien ne s'y oppose.
macleod7 Messages postés 15 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 21 septembre 2009
16 nov. 2006 à 12:01
Super la requête, elle affiche bien le nom sélectionné, mais dans une partie de la requete en partant de echo $valeur_aff[0]; ne pourrait t'on pas mettre une url par exemple, je regarde ce que je peux faire. En fait mon idée serait de mettre des noms de page avec l'extension, ainsi lors de la recherche, cela nous enverrez sur la page sélectionnée.
Utilisateur anonyme
16 nov. 2006 à 11:50
merci c bon maintenant il ne me reste plus qu'a le faire afficher dans le champ et de l'integrer a un formulaire ça devrait etre bon
buz_16 Messages postés 15 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 24 novembre 2006
16 nov. 2006 à 10:17
C'est parce que tu n'es pas connecté à la base...
if (!empty($_GET['id'])){
$mysql_link = mysql_connect("localhost", "root", ""); // paramètres de connexion de base en local sur ta machine
$req="SELECT titre FROM autocompletion_exemple WHERE id= ".$_GET["id"] ;
$res = mysql_db_query("ta_base", $req);
$valeur_aff = mysql_fetch_array($res);
echo $valeur_aff[0];
}
mysql_close($mysql_link);
Utilisateur anonyme
16 nov. 2006 à 10:06
ça me met exctement les mêmes erreurs, regarde:
Warning: mysql_db_query(): Access denied for user: 'ODBC@localhost' (Using password: NO) in c:\program files\easyphp1-7\www\javascriptfr_source_39699\exemple.php on line 49

Warning: mysql_db_query(): A link to the server could not be established in c:\program files\easyphp1-7\www\javascriptfr_source_39699\exemple.php on line 49

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-7\www\javascriptfr_source_39699\exemple.php on line 50
buz_16 Messages postés 15 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 24 novembre 2006
16 nov. 2006 à 09:37
Essaie comme ça.

f (!empty($_GET['id'])){
$req="SELECT titre FROM autocompletion_exemple WHERE id= ".$_GET["id"] ;
$res = mysql_db_query("ta_base", $req);
$valeur_aff = mysql_fetch_array($res);
echo $valeur_aff[0];
}

Ca devrait aller mieux.
Utilisateur anonyme
16 nov. 2006 à 09:15
Moi aussi j'ai rajouté une requête mais je pense quej'ai du faire une grosse erreur car ça ne marche pas, regardez:
if ( !empty($_GET['id']) )
$req="SELECT titre FROM autocompletion_exemple WHERE id= ".$_GET["id"] ;
$res=mysql_query($req) or die (mysql_error());
$res2=mysql_fetch_array($res);
echo $res2;

Tu as mis quoi comme requete toi BUZ_16
buz_16 Messages postés 15 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 24 novembre 2006
15 nov. 2006 à 16:31
Bonjour yukhaa, effectivement, c'est normal puisque dans le code de rubiks, on ne récupère que l'id par l'url...
Pour récupérer le reste de la table concernée par l'autocompletion, j'ai pour ma part rajouté une requete dans exemple.php afin de chercher le reste de la table grace à l'id via l'url.
Voili voilou !
Utilisateur anonyme
15 nov. 2006 à 09:25
ton code est vraiment génial et très interessant il va m'etre très utile néanmoins lorsque je l'utilise (exemple.php) à chaque fois que je sélectionne un film il m'affiche toujours la même chose c'est à dire "fiche du film XXXXXXXXXXX" suivi du numéro de l'id sais tu pk ça fais cela ? j'aimerais bien essayer de traffiquer le code pour essayer d'arranger mais j'ai peur de m'y perdre car j'ai pas encore tout analyser ton code
buz_16 Messages postés 15 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 24 novembre 2006
2 nov. 2006 à 09:35
Ouhaaa! Je n'en demandais pas tant ;-) En tout cas encore bravo pour ce code (très bien indenté et commenté) dont je me suis servi pour faire une recherche dynamique d'annuaire.
Je ne manquerai pas de jetter un oeil de temps en temps.
Merci et encore bravo.
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
31 oct. 2006 à 13:00
Bonjour a tous.

Je suis en train de fignoler une nouvelle librairie que j'ai creer pour faire de l'autocompletion car celle-ci était trop restrictive, la nouvelle sera entierement parametrable et l'instanciation se fera en une commande et vous pourrez creer une autocomplétion différente pour plusieurs champs dans une meme page, des effets d'ouverture et de fermeture sont pré-enregistrés et vous pourrez choisir celui que vous voulez, c'est a vous de définir votre propre fonction executée lors de la validation d'un choix ( la fonction par defaut déja enregistrée change la valeur de l'input par le texte du choix selectionné )
Puis plein d'autres options comme le nombre minimal de caractere pour que l'autocomplétion se lance, aussi le choix d'utiliser soit ajax pour effectuer des requetes dans une base de données soit la méthode Locale qui permet de rechercher dans un tableau de chaines de caracteres etc....

Voila donc au lieu de mettre a jour cette source je vais en creer une nouvelle donc jetez un petit coup d'oeil de temps en temps a mes sources elle y sera dans peu de temps.

Merci d'avance.

-- The Rubik's Man --
macleod7 Messages postés 15 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 21 septembre 2009
31 oct. 2006 à 12:12
Salut Buz_16

Je viens de découvrir ton script est je suis emballé.
Cependant ton script ne servirais t'il pas pour un moteur de recherche par exemple, actuellement j'étudie le problème.
ce que j'ai fait j'ai rajouté à la table un champs "url" ainsi ce champ contiendrait par exemple "astuces.php", mais quel fichier faudrait il que je modifie pour avoir avant l'url du site suivi de ce nom de fichier, ainsi quand l'utilisateur fait une recherche par rapport au champs titre et en cliquant sur le choix proposé on cliquerais dessus qui enverrait vers la page concernée. En attendant un point de vue, je continue ma recherche
buz_16 Messages postés 15 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 24 novembre 2006
30 oct. 2006 à 10:32
hello, tu as compris, effectivement, la requete se ferait non pas sur un seul champ, mais sur deux champs d'une même table(en fait le nom de famille d'une personne ou son numéro de telephone).
Donc au niveau du form, celui-ci permettrait soit une recherche sur le nom (comme c'est le cas actuellement grace à ton code) soit sur un numéro...
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
20 oct. 2006 à 20:31
Salut buz_16

Le problème est que si tu veux faire une recherche sur 2 champs d'une table alors cela veut dire qu'il faudrait 2 input permettant de faire l'autocomplétion...

Et donc ce n'est plus une vraie autocomplétion a partir d'un seul champ.
Peut etre que je ne comprends pas ton but ( cela est fort possible ) donc pour que je te répondes plus précisément explique moi exactement ton besoin avec un exemple concret que tu veux effectuer.
Puis je pourrais étudier ce cas ( en tout cas voir si cela est faisable facilement sans tout modifier )

J'ai déjà une petite idée mais n'étant pas sur de l'exactitude de ton probleme je préfere attendre une meilleure explication afin de te donner une réponse ciblée et précise.

Voila et encore merci pour ton intérêt pour ma source

--The Rubik's Man--
buz_16 Messages postés 15 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 24 novembre 2006
20 oct. 2006 à 16:18
Hello rubiks, j'aimerais savoir quels sont les paramètres à modifier pour faire non pas une recherche sur un seul champ d'une table (comme c'est le cas actuellement) mais sur deux, à savoir un champ comportant des noms et un autre des numéros (de tél par exemple).
Autrement dit, sur des lettres ou sur des chiffres.
Merci pour ton aide et encore bravo.
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
17 oct. 2006 à 17:57
Salut Xmag

Ben en fait mon formulaire n'est jamais " submiter ".
J'intercepte les evenements touche et souris et je fais un redirect en fonction du choix.

Mais cela ne change rien en ton problème et en fait oui pour l'utilisation que tu veux en faire cela ne fonctionnera pas pour plusieurs champs puisqu'en fait meme si le clic ne ferait rien j'utilise un "faux formulaire" qui n'est jamais "submiter"

Mon module permet en fait la redirection mais a partir d'un seul choix... celui de l'input principal

Voila désolé

--The Rubik's Man--
buz_16 Messages postés 15 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 24 novembre 2006
17 oct. 2006 à 09:23
Hello rubiks, je suis trop bête... Vu que l'on récup l'id de la table en get via l'url, j'ai réeffectué une requete dans la page de manière à afficher toutes les données liées à cet id...
;-)
cs_xmag Messages postés 23 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 11 juin 2007
13 oct. 2006 à 17:22
Salut ;)

Ben en fait, si par exemple, tu as un formulaire avec plusieurs champs (qui s'autocomplètent ou pas), vu que tu "submites" ton formulaire au clic, ca ne peut pas fonctionner ;)
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
13 oct. 2006 à 16:59
Salut Buz_16

Si l'aide a la saisie ne t'affiche que l'id alors cela veut dire que dans le fichier php de configuration tu n'as pas indiquer le bon champ de ta table representan ce que tu veux afficher

cela dit est-ce que mon exemple fonctionner d'origine sans que tu y touches??

bonne prog

--The Rubik's Man--
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
13 oct. 2006 à 16:56
Salut Xmag

Je ne comprends pas ta question...

Car si on ne fais pas un submit alors je ne vois pas l'intérêt.

Donc explique moi plus précisement ta demande et aussi l'utilisation que tu veux en faire en donnant un exemple afin que je comprenne ta question

Merci

--The Rubik's Man--
buz_16 Messages postés 15 Date d'inscription vendredi 13 octobre 2006 Statut Membre Dernière intervention 24 novembre 2006
13 oct. 2006 à 12:42
Salut et bravo pour ce travail très propre. Ceci dit, le résultat n'affiche que l'id et je tente sans succès d'afficher d'autres elements, sans succès.
Quelqu'un peut-il m'aider ?
Merci à tous.
cs_xmag Messages postés 23 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 11 juin 2007
12 oct. 2006 à 07:52
Petite question, comment fais-tu si tu ne veux pas faire un submit direct lors de la selection?
cs_xmag Messages postés 23 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 11 juin 2007
11 oct. 2006 à 16:08
Merci pour cette source, c'est exactement ce qu'il me fallait :)
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
28 sept. 2006 à 15:27
Oui merci Kareem!! j'ai oublié cette petite optimisation... et merci pour la note!!
Kareem22 Messages postés 1 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 28 septembre 2006
28 sept. 2006 à 10:54
Salut Rubik,

Je me permets de te noter car je trouve ton code plutôt bien construit.

Cà change des formulaires de mails qu'on a l'habitude de voir par milliers sur CodesSources.com

Bref une petite suggestion : la clause DISTINCT dans ta requête serait la bienvenue.

Bonne journée.
rubiks10 Messages postés 224 Date d'inscription lundi 19 décembre 2005 Statut Membre Dernière intervention 6 juin 2007 3
27 sept. 2006 à 19:21
Fremy

Pour répondre a ton commentaire je connais très bien ce script dont tu m'as donné l'adresse et le code javascript est très lourd comparé a mon script.

Puis je le répète mon mode d'autocomplétion permet lors du clic sur une suggestion d'aller sur une page avec l'id de l'enregistrement dans la base de données comme parametre ce qui permet comme dans mon exemple d'afficher directement une fiche alors que la validation du formulaire sans utiliser les suggestions permet par exemple d'effectuer une recherche approfondie...

L'utilisation est donc vraiment differente du script a l'adresse
"http://dcabasson.developpez.com/articles/javascript/ajax/ajax-autocompletion-pas-a-pas/"

J'ai codé ce module pour une entreprise qui voulait absolument ce syteme avec id dans une base.
Et je me suis rendu compte après coup que ce système m'était demandé par de nombreuses personnes, c'est pourquoi je le laisse maintenant a disposition en téléchargement pour les personnes intéressées.

Donc avant de laisser des commentaires inutiles vérifiez bien les fonctions que le script apporte par rapport a certains déjà existents sur le net...

Encore merci.
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008
26 sept. 2006 à 19:21
PHP n'est pas le seul langage serveur au monde... ;-))

Tu peux aussi utiliser ASP .Net, JSP, ASP, CGI, ...

A noter qu'un script similaire existait déjà... Ca peut de donner des idées pour améliorer le tiens : http://dcabasson.developpez.com/articles/javascript/ajax/ajax-autocompletion-pas-a-pas/
Rejoignez-nous