Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3281 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  liste déroulante affichage automatique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

liste déroulante affichage automatique

n°971283
zeal21
Posté le 04-02-2005 à 09:37:30  profilanswer
 

Bonjour,  
   
je voudrais savoir comment on insère une donnée dans une zone texte en sélectionnant une donnée dans une liste déroulante.    
   
je vous dit mon cas:  
j'ai une liste déroulante ou il y a mes noms d'utilisateurs et en dessous une zone texte qui représente le nom de leur service.  
quand je cliquerais sur un nom d'utilisateur, j'aimerais que leur service apparaisse automatiquement dans la zone texte...    
   
déjà est ce que c possible de le faire? Si oui, comment? (il faut utiliser onchange, onclick sur la liste déroulante?)    
   
c'est assez urgent svp.....  
merci en attendant,    
   
si qq1 a une idée n'hésitez pas....    

mood
Publicité
Posté le 04-02-2005 à 09:37:30  profilanswer
 

n°971316
esrevni
à contrario
Posté le 04-02-2005 à 10:08:52  profilanswer
 

tu peux utiliser onChange si tu veux ;)

n°971428
zeal21
Posté le 04-02-2005 à 11:49:43  profilanswer
 

esrevni a écrit :

tu peux utiliser onChange si tu veux ;)


 
ok j'en avais ma petite idée
mais je fais un onchange dans ma liste déroulante et ma cible serait quoi? comment je peux dire que ma zone texte recevra le nom du service de tel user?(avec une requête sql ou en javascript? :??: )
 
 

n°971447
FlorentG
Posté le 04-02-2005 à 11:57:16  profilanswer
 

Tu veux faire ça côté client, ou côté serveur ?

n°971563
zeal21
Posté le 04-02-2005 à 13:18:59  profilanswer
 

FlorentG a écrit :

Tu veux faire ça côté client, ou côté serveur ?


 
ben coté client
en fait c'est une sorte "d'authentification".
Pour tout vous expliquer, le client a à faire à ce formulaire quand il veut déclarer un incident.
Ensuite, il choisit son nom dans une liste déroulante. et au lieu qu'il tape son service, celui-ci s'affiche automatiquement!
voila
 
le souci c'est que je ne vois pas comment faire pour qu'il s'affiche, j'ai mes petites idées mais je vois pas où les mettre..
 
faut dire que je suis encore un newbie en php et je connais peu le javascript... :(


Message édité par zeal21 le 04-02-2005 à 13:19:51
n°971621
cerel
Posté le 04-02-2005 à 13:47:42  profilanswer
 

Tu donne un id a ta zone texte. Ensuite tu peux faire un truc du genre :

Code :
  1. <script type="text/javascript">
  2. function remplir(liste) {
  3.   var inputtext = document.getElementById("service" );
  4.   inputtext.value = services[liste.selected];
  5. }
  6. </script>
  7. <form>
  8. <select name="nom" onchange="remplir(this);">
  9. <option selected="selected" value="0">Veuillez choisir un nom</option>
  10. <option value="1">Pierre Tramo</option>
  11. <option value="2">John Titor</option>
  12. <option value="3">Foo Bar</option>
  13. </select>
  14. <input type="text" name="service" id="service" value="" />
  15. </form>


Il suffit que tu remplisses le tableau "services" avec les services correspondants aux noms et ce sera bon.
 
Attention cependant, si le visiteur n'as pas de JS ca ne marchera pas.


Message édité par cerel le 04-02-2005 à 13:48:27
n°971737
zeal21
Posté le 04-02-2005 à 14:43:39  profilanswer
 

en fait je comprends pas trop ton système  
là tu me donnes une fonction pour que je repmlisse ma liste!:??:  
Or ma liste déroulante contient mes noms d'utilisateurs....  
cette liste est remplie directement avec une requête SQL
ce qu'il me faut c'est juste le lien entre la liste et la zone texte pour que, dès que je sélectionne un nom, son service apparait.... :sarcastic:  
 
a moins que je n'ai pas compris ce que t'as voulu me mettre

n°971762
esrevni
à contrario
Posté le 04-02-2005 à 14:48:56  profilanswer
 

et les services, ils sont où ? dans un tableau ou dans les values de ton select ?

n°971830
zeal21
Posté le 04-02-2005 à 15:04:55  profilanswer
 

esrevni a écrit :

et les services, ils sont où ? dans un tableau ou dans les values de ton select ?


 
mes services sont dans une table MySql ainsi que mes users
mes users sont remplies dans la liste.

n°971841
esrevni
à contrario
Posté le 04-02-2005 à 15:07:30  profilanswer
 

Si tes services ne sont pas sur le client au moment du clic, tu dois refaire un appel au serveur. Sinon, tu peux remplir les value des select directement avec tes services et faire un truc du style

Code :
  1. onChange="document.getElementById('tonIdDuChampTexte').value=this.value";

mood
Publicité
Posté le 04-02-2005 à 15:07:30  profilanswer
 

n°971872
zeal21
Posté le 04-02-2005 à 15:22:13  profilanswer
 

je comprends ta phrase
[citation]Si tes services ne sont pas sur le client au moment du clic, tu dois refaire un appel au serveur[/citation]

n°971873
esrevni
à contrario
Posté le 04-02-2005 à 15:22:57  profilanswer
 

tout va bien alors ;)
 
en gros, le client, il va pas les inventer, tes services. Soit il les a dans un tableau ou dans les value des select et ils sont exploitables, soit il les a pas, et il faut refaire une requête sql pour rapatrier le bon service correspondant au nom selectionné. Comprendo ?


Message édité par esrevni le 04-02-2005 à 15:25:25
n°971882
zeal21
Posté le 04-02-2005 à 15:31:56  profilanswer
 

a daccord!! lol
mais en fait je veux pas mettre mes services dans une liste déroulante! sinon ca serait trop simple! lol :D
là où je vaux mettre mes services c'est une zone de texte
et je veux pas que mes utilisateurs saisissent leur service(sinon trop de doublon ou trop d'ecriture différente!)
je veux que dès qu'il choisissent leur nom le service s'affiche automatiquement dans la zone texte!
et toi t'as compris? ;) :p

n°971896
esrevni
à contrario
Posté le 04-02-2005 à 15:36:25  profilanswer
 

Bon je vais essayé de faire simple,
 
tu as un select avec des options :
 

Code :
  1. <option value="serviceDuGus">nom du gus</option>


 
dans ton select tu mets
 

Code :
  1. onChange="document.getElementById('tonIdDuChampTexte').value=this.value";


 
ainsi quand tu le choisis gus dans ton select, magie de paris, le nom du service ("serviceDuGus" qui est dans la value de l'option) apparaitra dans ton champs texte.
 
là je peux pas faire plus

n°971918
zeal21
Posté le 04-02-2005 à 15:43:29  profilanswer
 

2-3 petites choses a demander:
- tu veux que mes services soit dans une liste déroulante?
- OU je choisi mes utilisateurs dans une liste déroulante, ensuite je choisi son service dans une liste déroulante et cet service se met dans la zone texte?
- ce que tu mets dans value, c'est ce qui'il va s'aficher à l'écran?
 
 

n°971934
esrevni
à contrario
Posté le 04-02-2005 à 15:50:51  profilanswer
 

zeal21 a écrit :

2-3 petites choses a demander:
1 tu veux que mes services soit dans une liste déroulante?
2 OU je choisi mes utilisateurs dans une liste déroulante, ensuite je choisi son service dans une liste déroulante et cet service se met dans la zone texte?
3 ce que tu mets dans value, c'est ce qui'il va s'aficher à l'écran?


 
1. non dans les values des options. une value est en quelque sorte une clé et c'est elle qui va etre mise dans la requete envoyé au serveur (et non les valeurs affichées dans le select)
 
2. non tu choisis un utilisateur et comme dans le value, il y aura déjà son service, tout va bien.
 
3.  :non: non, non et non  :non: relis la réponse du 1
 
tu as déjà utilisé un select dans un contexte C/S ?

n°971952
zeal21
Posté le 04-02-2005 à 16:02:42  profilanswer
 

ben j'utilise un select pour metre mes utilisateurs et aussi quand ils veulent voir ces incidents. ils choisissent des catégories auquel appartiennent des incidents, leur statu(en cour,clos...)
 
et en fait je viens juste de voir que j'allais justement faire un peu le même procédé en ce qui conecrne les value...
dsl  
 
en tout merci de me consacrer du temps ;)

n°971967
zeal21
Posté le 04-02-2005 à 16:09:24  profilanswer
 

OUPS
je viens de m'apercevoir d'un truc  
là ton code c'est cool pour 3utilisateurs avec 2services!!
mais j'ai une 50 voir 100 utilisateur et 20services...
:s
 
donc ton truc c'est cool mais bon ca me convient pas de trop....
dsl..... :s

n°971983
esrevni
à contrario
Posté le 04-02-2005 à 16:20:35  profilanswer
 

euh non, mon code il convient pour autant d'utilisateurs que tu veux (je ne connais pas la limite du nombre d'options pour un select, si il y en a une, mais je ne crois pas)

n°971987
zeal21
Posté le 04-02-2005 à 16:24:50  profilanswer
 

oué d'accord je comprends bien
mais ce que je veux dire c'est qu'il y a pas un moyen pour que les services soient rentrés "automatiquement"
je vais pas me taper 100lignes pour définir que tel personne a tel service...... tu comprends?
sinon c'est du code à la bourrin....

n°971996
FlorentG
Posté le 04-02-2005 à 16:31:59  profilanswer
 

Ca faut faire côté serveur alors :/

n°972001
zeal21
Posté le 04-02-2005 à 16:35:01  profilanswer
 

FlorentG a écrit :

Ca faut faire côté serveur alors :/


 
en gros c'est presque impossible ce que je veux faire...??!!  :??:  :(
 
abused.... :(

n°972002
FlorentG
Posté le 04-02-2005 à 16:35:48  profilanswer
 

Si, tout est possible ;) Mais dans la mesure du possible, faut tout faire côté serveur, c'est le mieux :)

n°972004
cerel
Posté le 04-02-2005 à 16:37:01  profilanswer
 

esrevni a écrit :

Bon je vais essayé de faire simple,
 
tu as un select avec des options :
 

Code :
  1. <option value="serviceDuGus">nom du gus</option>


 
dans ton select tu mets
 

Code :
  1. onChange="document.getElementById('tonIdDuChampTexte').value=this.value";


 
ainsi quand tu le choisis gus dans ton select, magie de paris, le nom du service ("serviceDuGus" qui est dans la value de l'option) apparaitra dans ton champs texte.
 
là je peux pas faire plus


L'inconvenient avec cette methode c'est qu'il ne recupere que le service mais pas le nom du gus... Il me semble que se serait mieux s'il pouvait recuperer les 2 a la fois.
 
zeal21 :
Dans le systeme que je t'ai donne, tu dois remplir le tableau "service" en javascript avec les services correspondants aux utilisateurs.
Tu dois donc faire 2 requetes SQL. Une pour recupere les noms des utilisateurs et construire ton select. Et enfin une autre requete SQL pour construire le tableau JavaScript qui va contenir les services correspondants.
Si tu connais un peu JS tu pourrais meme "optimser" ca et creant un tableau d'objets. Ces objets auraient le nom du client et le service. Ensuite tu pourrais meme utiliser ce tableau pour construire ton select.

n°972007
esrevni
à contrario
Posté le 04-02-2005 à 16:40:15  profilanswer
 

apparemment tu utilises du php pour ta page. Moi, je fais du java et en java, j'aurai utilisé un tableau d'objet Utilisateur avec comme attributs : le nom et le service. Après je fais une boucle pour remplir mon select du style

Code :
  1. <% for (int i=0 ; i<tableauUtilisateur.length() ; i++){%>
  2. <option value="<%=tableauUtilisateur[i].getService()%>"><%=tableauUtilisateur[i].getNom()%></option>
  3. <%}%>


 
mon tableau peut alors avoir 100 utilisateurs, mon select aura 100 entrées et j'aurai pas bcp codé pour ça.
 
Tu vois ce que je veux dire ?


Message édité par esrevni le 04-02-2005 à 16:40:58
n°972014
zeal21
Posté le 04-02-2005 à 16:48:25  profilanswer
 

oué d'accord...
le souci c'est que j'apprends déjà en live le JS parce que la je suis en stage lol
et mes services dans une table MySQl...
je fais le site en PHP/MySql.....
j'ai déjà rentré mes services....
 
mais en fait je vais posé une question con: sans faire de tableau en javascript, en ayant que ma table users et service, avec php et un pe JS, est ce que je peux faire ce que je demande c'est a dire, pouvoir mettre dans ma zone texte "service", le nom du service rien qu'en sélectionnant un le nom d'un utilisateur ddans une liste déroulante? :??:
 
parce que la je nage un peu beaucoup...
si c'est pas possible ils choisiront leur service dans une liste déroulante pi voila ca sera plus simple....
 
en attendant , merci beacoup ;)

n°972027
esrevni
à contrario
Posté le 04-02-2005 à 16:53:55  profilanswer
 

zeal21 a écrit :


 
j'ai déjà rentré mes services....
 


 
Dans une table MySQL ? si oui, elle doit être liée quelque part à la table utilisateur. Il suffit juste de créer un recordSet (je connais pas php donc ne vous jeter pas sur moi si c'est pas la bonne manière de faire) qui te ramène pour chaque utilisateur son nom et son service. Après tu utilises ce recorset (pas taper) comme un tableau d'utilisateurs et tu fais ce qu'on te dit depuis maintenant... 9h37 ce matin. Heurseument que je suis au boulot, j'aurai pas été aussi patient à la maison  :D

n°972039
zeal21
Posté le 04-02-2005 à 17:03:10  profilanswer
 

LOL
ralala je sais pas ou tu bosses mais tu doit pas faire grand chose!! lol  
nan désolé je paux pas juger...
 
ben oué c'est dans une table Mysql et la table users a comme clé étrangère l'ID des services.
 
en fait faudrait que je crée une fonction qui fait ca et je l'appelle quand on change dans ma liste avec un "onchange" !!
non?
 
MERCI encore.... :D

n°972048
esrevni
à contrario
Posté le 04-02-2005 à 17:10:27  profilanswer
 

zeal21 a écrit :

LOL
ralala je sais pas ou tu bosses mais tu doit pas faire grand chose!! lol  
nan désolé je paux pas juger...
 
ben oué c'est dans une table Mysql et la table users a comme clé étrangère l'ID des services.
 
en fait faudrait que je crée une fonction qui fait ca et je l'appelle quand on change dans ma liste avec un "onchange" !!
non?
 
MERCI encore.... :D


 
je fais pas grand chose ? faut dire que ce que tu mets 1 journée à coder, je l'aurais fini à 9h39  :D  
 
pour tes tables, tu peux pas créer une requête qui te ramenerait juste les noms et les services associés dans un recordset ? si oui, tu peux tout faire côté client : sur le onChange, une fonction JS va remplir directement ton champs texte (cf mon 3ème message). ouf dsl mais comme le disait lorie C'EST LE WEEK END, SUPER WEEK END

n°973838
zeal21
Posté le 07-02-2005 à 11:00:41  profilanswer
 

tu l'aurais peut- être fait en 2minutes en JS alors que je ne fait pas un site en JS...
c'est ca le problème....
tant pis
++

n°973844
zeal21
Posté le 07-02-2005 à 11:19:28  profilanswer
 

Cerel a écrit :


Code :
  1. <script type="text/javascript">
  2. function remplir(liste) {
  3.   var inputtext = document.getElementById("service" );
  4.   inputtext.value = services[liste.selected];
  5. }
  6. </script>
  7. <form>
  8. <select name="nom" onchange="remplir(this);">
  9. <option selected="selected" value="0">Veuillez choisir un nom</option>
  10. <option value="1">Pierre Tramo</option>
  11. <option value="2">John Titor</option>
  12. <option value="3">Foo Bar</option>
  13. </select>
  14. <input type="text" name="service" id="service" value="" />
  15. </form>




 
j'ai testé cette méthode comme celle de esrevni. Elles fonctionnent mais un souci.
quand je choisis une valeur, c'est l'ID de l'utilisateur...
mais je pense que cela vient du fait que ma liste déroulante a comme valeur "iduser" et se base sur l'ID de l'utilisateur...
pour résoudre le problème que dois-je faire? une requête? :??:  
 
merci de vos réponses ;)

n°976398
zeal21
Posté le 09-02-2005 à 14:17:14  profilanswer
 

bon ben la chui desepéré....
je n'arrive pas a afficher mon nom de service...
j'ai essayé de faire uen requête pour retrouver le nom du service mais impossible...  
je vois pas comment il faut...
si une bonne âme veut bien m'aider ca serait cool...
merci...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  liste déroulante affichage automatique

 

Sujets relatifs
affichage automatique dans zone texte grace listbox[CSS][Nioub] affichage de morceaux d'images
PHP/MySQL: liste déroulante, affichage automatiquepop up / affichage
Validation Automatique Saisie d'un Champ sous Accessaffichage a partir d'une bdd
Plus de sujets relatifs à : liste déroulante affichage automatique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR