liste déroulante

holidays
Invité n'ayant pas de compte PHPfrance

30 oct. 2006, 10:17

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.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 oct. 2006, 10:52

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.

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

holidays
Invité n'ayant pas de compte PHPfrance

30 oct. 2006, 10:58

merci je regarde ça !

holidays
Invité n'ayant pas de compte PHPfrance

30 oct. 2006, 11:25

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

holidays
Invité n'ayant pas de compte PHPfrance

30 oct. 2006, 11:38

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

30 oct. 2006, 11:39

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 ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 15 Messages

30 oct. 2006, 11:48

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.

holidays
Invité n'ayant pas de compte PHPfrance

30 oct. 2006, 11:50

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

holidays
Invité n'ayant pas de compte PHPfrance

30 oct. 2006, 12:32

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

30 oct. 2006, 14:04

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:

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

holidays
Invité n'ayant pas de compte PHPfrance

30 oct. 2006, 14:33

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

holidays
Invité n'ayant pas de compte PHPfrance

30 oct. 2006, 16:42

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