PHP - formulaire de recherche dynamique

Fermé
nico - 27 avril 2004 à 17:23
 demicerveau - 1 mai 2007 à 22:43
J'aimerais créer un formulaire de recherche en PHP. Jusque là tout va bien. La difficulté est de le rendre vraiment dynamique et pas seulement au moment où la page se charge.
C'est à dire, dans un champ de saisie l'utilisateur commence à entrer un mot correspondant à un enregistrement dans une base mysql. Au fur et à mesure qu'il tape les lettres du mot, une liste affiche en même temps les enregistrements correspondant à cette orthographe.
Ce qui permet d'effectuer une recherche sans connaître vraiment la syntaxe du champ. Il pourra en suite choisir dans la liste en cours de saisie le champ souhaité, ce qui remplira correctement le champ de départ.

Je pense que pour ceci, il va me falloir rajouter du code javascript ou DHTML. Le langage principal de l'application restant du PHP

Merci de bien vouloir me dire si déjà c'est possible, vers quel langage me tourner (langage web), et si il existe un tutaux expliquant la marche à suivre. Ou toute autre info pouvant m'aider, je suis preneur.

9 réponses

JEROMAX Messages postés 274 Date d'inscription jeudi 22 février 2001 Statut Membre Dernière intervention 7 octobre 2013 10
28 avril 2004 à 10:48
En gros, il n'y a que 2 solutions:
soit tu fais tes recherches sur le serveur soit sur le client
- Sur le client, la recherche sera théoriquement plus rapide puisque toutes les infos seront dispo (mais ta page sera énorme en terme de poids puisqu'il te faudra tout rapporter sur le navigateur...)
- sur le serveur, tu peux vraiment faire tes requètes en temps réél, mais là il te faut une pu****n de connexion...
Je pense que c'est quand même cette solution la mieux.
A chaque caractère saisi tu appelle un script php qui rempli ton combo. Je pense que si ta base est bien faite et si le client a une bonne connexion, ça devrait fonctionner, pas instantanément, mais 2 ou 3 sec après la saisie, ta combo peut être remplie.

[ JEROMAX ] 
http://www.zepixel.com http://www.jeromax.free.
2