auto-complétion + SQL

Eléphant du PHP | 164 Messages

10 févr. 2010, 10:45

Bonjour,

Dans l'idée, je voudrais que quand on commence à écrire dans un input, que tous les mots d'une liste (contenu dans une table) se mette en dessous à l'instar de l'historique d'un navigateur web ... par exemple une liste de nom (machin jean, machin edouard, madi hauser, manin tosh) je commence à taper "m" il m'affiche les 4, je tape "a" j'ai toujours les 4, je tape "c" je n'ai plus que 2 choix.

Est ce possible ? A préciser que lors de ce choix je dois ressortir la variable du numéro d'identifiant de ce nom.

Merci d'avance
Modifié en dernier par lacfab le 10 févr. 2010, 13:43, modifié 1 fois.

Eléphant du PHP | 86 Messages

10 févr. 2010, 11:04

Bonjour,

C'est tout à fait possible avec Ajax, il y a deux possibilités pour moi :
- Déclencher une nouvelle requête sql à chaque fois que l'input est modifié (événement javascript) et affichage d'une liste de choix (toujours grâce au javascript).
- Faire une seule requête au chargement de la page, stocker les résultats dans un tableau javascript afin de modifier la liste de choix à chaque saisie dans l'input.

Eléphant du PHP | 164 Messages

10 févr. 2010, 11:19

Ajax ? Arf je n'y connais rien du tout je sais même pas à quoi ça ressemble MDR

Je vais regarder du côté requête passée en liste javascript ...

ViPHP
ViPHP | 5462 Messages

10 févr. 2010, 12:25

ca s'appelle l'auto-complétion

Eléphant du PHP | 164 Messages

10 févr. 2010, 13:31

Ce terme me change la vie merci ... je crois que j'ai trouvé mon bonheur ici : http://www.javascriptfr.com/codes/AUTO- ... 41154.aspx

Je fais le test dès que possible :)

Eléphant du PHP | 164 Messages

10 févr. 2010, 13:44

Alors le soucis de tous les scripts que j'ai trouvé (+ de 15) c'est qu'aucun ne tient compte d'une portion qui se trouverai DANS un terme. Par exemple sur le terme "Chuck Norris" et qu'on lance la recherche sur "uck" on trouve rien.

Snif

ViPHP
ViPHP | 5462 Messages

10 févr. 2010, 15:00

enfaite c'est a toi de construire ta requete derrier

en gros pour ton exemple ca serait
SELECT * FROM test WHERE name LIKE %uck%

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

10 févr. 2010, 17:38

Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

11 févr. 2010, 14:41

Alors le soucis de tous les scripts que j'ai trouvé (+ de 15) c'est qu'aucun ne tient compte d'une portion qui se trouverai DANS un terme. Par exemple sur le terme "Chuck Norris" et qu'on lance la recherche sur "uck" on trouve rien.

Snif
L'exemple de stealth35 est bon mais n'oublie pas que si la table concernée est "importante" le temps de réponse le sera aussi = pas très réactif comme traitement

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 164 Messages

12 févr. 2010, 09:54

Ah !
Justement elle l'est ... importante !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

12 févr. 2010, 11:33

ceci dit tu n'as pas d'autre choix si tu veux
Par exemple sur le terme "Chuck Norris" et qu'on lance la recherche sur "uck" on trouve rien
je te déconseilles donc de faire ça

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute