Page 1 sur 1

liste déroulante

Posté : 30 oct. 2006, 10:17
par holidays
Bonjour,

En faite voila, je voudrais créer une liste déroulante qui se remplit à partir de la base, jusqu'ici pas de probleme, sauf que je voudrais que lorque l'on utitlise le clavier cela me dirige sur l'enregistrement correspondant. Je vais essayer de m'expliquer mieux. Par exemple j'ai

Adrien
Alexandra
Amélie
Audrey
Aurélien

si je tape sur le A je suis sur Adrien si j'ajoute le U sur Audrey puis encore le R sur Aurélien.
Le problème c'est que moi cela marche bien sur la première lettre mais pas sur les suivantes, de quel manière es-ce que je peux faire.

Merci d'avance.

Posté : 30 oct. 2006, 10:52
par Truc
Salut,
Il s'agit donc d'inervenir sur une page mais coté client donc c'est du javascript qu'il te faut et non PHP.
=> déplacement

Tu peux fouiller cet exemple se rapprochant un peu de ce que tu voudrais.

Posté : 30 oct. 2006, 10:58
par holidays
merci je regarde ça !

Posté : 30 oct. 2006, 11:25
par holidays
Bon j'ai regardé mais je ne voie pas de quel manière l'adapter avec une liste deroulante qui est rempli a partir d'une table.
Y aurait-il une manière de faire cette liste deroulante tout en javascript, si oui de quel manière.
merci d'avance

Posté : 30 oct. 2006, 11:38
par holidays
oups, c'est pas possible, je viens de lire qu'il était pas possible en javascript d'interféré dans une base.
De quel manière je pourrai faire avec la liste deroulante en php et le reste en javascript ?
merci

Posté : 30 oct. 2006, 11:39
par Ryle
Le problème, c'est que le fonctionnement des listes déroulantes est tel qu'il te positionne toujours sur la ligne commençant par la dernière lettre tapée. Ainsi si tu tapes "L" puis "E" tu seras placé sur les lignes commençant par "E" et non par "LE"... et ça, malheureusement on peut pas y faire grand chose... faut essayer de trouver d'autres solutions comme celle de Truc, ou sur le principe des Suggest Box

Ceci dit, tout ceci étant du javascript, cela ne s'exécute que côté client une fois la page chargée. Cela signifie que tu peux tout à fait alimenter ta liste avec des infos provenant de ta bdd au préalable ;)

Posté : 30 oct. 2006, 11:48
par falgan
pas tout a fais, j'ai remarqué que si tu tapes rapidement les lettres les unes apres les autres, il prends en compte la chaine et non plus seulement la lettre.

Posté : 30 oct. 2006, 11:50
par holidays
oui en effet je vien de voir ça, mais je ne peux pas imposer au utilisateur de tapper a cette vitesse pour que cela marche

Posté : 30 oct. 2006, 12:32
par holidays
Bon, j'ai essayer de bidouillé le code javascript pour que cela fonctionne avec la base, mais sans succes.
Tu a parlé de Suggest Box, qu'est-ce que c'est ? merci
Si vous avez toutes sortes d'idée cela m'interresse.

Je précise que dans ma liste dérooulante j'ai plus de 700 enregistrements, et il affiche des renseignement de différentes tables. Il faut bien entendu que lorsque je choisisse un enregistrement cela me garde l'identificant pour pouvoir ensuite enregistrer dans la base le choix effectué.
Il me faut quelque chose de rapide a utiliser, c'est une application faite pour le standard afin de choisir le client qui appel pour ensuite enregistrer l'appel. Donc il faut que se soit facile a utiliser et rapide.
Merci d'avance pour toutes les suggestions que vous pourrez me faire

Posté : 30 oct. 2006, 14:04
par Truc
Pour construire la liste d'après le résultat d'une requête regarde CECI

Et tu peux très bien reprendre le script proposé. :idea:

Posté : 30 oct. 2006, 14:33
par holidays
a ce niveau je n'avais pas de problème, j'avais fais un truc similaire
<?php
echo '<select size=1 name="mat" style="width:600px;">>'."\n";     
echo '<option value="0"><option>'."\n"; 
 $req = mysql_query('SELECT nom_gc, matricule_lieux, ad_rue_lieux, ville, cp_ville, client.matricule_gc
FROM client, lieux, ville
WHERE client.matricule_gc=lieux.matricule_gc
and lieux.code_ville=ville.code_ville') ; 
while ($row = mysql_fetch_row($req)) { ?>
<option value="<?php echo $row[1] ?>"><?php echo $row[5].' '.$row[3].' '.$row[4].' '.$row[2].' '.$row[0]; ?>     
</option>;     
<?php } ?>
mon problème
Adrien
Alexandra
Amélie
Audrey
Aurélien

si je tape sur le A je suis sur Adrien si j'ajoute le U sur Audrey puis encore le R sur Aurélien.
Le problème c'est que moi cela marche bien sur la première lettre mais pas sur les suivantes, de quel manière es-ce que je peux faire.
voila j'espère que j'ai été un minimun clair.
merci d'avance

Posté : 30 oct. 2006, 16:42
par holidays
J'ai trouvé ça sur le topic html
http://www.phpfrance.com/forums/voir_sujet-22698.php
c'est ça qu'il me faudrai, je pense. Mais le premier lien ne marche pas et le second je ne comprend pas. Quelqu'un pourrai m'aider.
merci