Probleme HTML et <select>
en fait, dans ma liste déroulante crée avec le select, j'ai tous les noms de clients (170 en tout) et à chaque client j'ai associé un numéroclient. Je veux que dès que je choisis un nom dans la liste déroulante, le n°client s'affiche et si je change de nom , le n° s'actualise.
merci
34 réponses
Le problème porte sur l'actualisation du numéro de client affiché lorsque l'on choisit un nom dans une liste déroulante générée par un select, les noms étant issus d'un répertoire et d'une table. Des répondants suggèrent de lire les données dans la base via une requête SQL (select noclients, refsofi from facturation) et de générer les options à partir des résultats, plutôt que du répertoire. Pour afficher automatiquement le n°client lors du changement, il est conseillé d'ajouter un onchange au select pour mettre à jour un champ affiché, par exemple showID, avec la valeur correspondante. Par ailleurs, il est préférable d’utiliser une source unique et cohérente des données pour lier nom et numéro et éviter les paramètres qui reviennent à null.
-
Aucun problème.
Quand tu veux (du moins quand j'ai le temps ;-) )
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius] -
bon...
j'ai quelque chose à te dire...
CA MARCHE !!!!!!!
oh miracle, j'ai suivi à la lettre
MERCI MSIEU trop gentil
(je saurai qu appeler maintenant :-))) ) -
Bon Nicocotiers, tu peux laisser grofwa travailler, passque tout ce qu'il ne fait pas dans notre entreprise, ben c'est un peu moi qui vas le faire plus tard...
Non de non.... -
Toujours cette foutue erreur de 1 ;-)
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius] -
pour l'exception c'est bon: il fallait rs.getString(1) et (2)
-
ma connection etait déja faite
merci -
exception: Column Index out of range ( 0 > 2).
-
Pas de quoi
Il faudra sûrement modifier deux trois trucs (connexion DB notamment).
Si t'as un problème, fais-moi signe ;-)
Michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius] -
merci beaucoup michael !!
là c'est de l'explication nikel ! ;-)
c'est sympa de t'occuper de moi
à mon avis ça devrait fonctionner -
Mais comme je viens de te l'expliquer ci-dessus !
Bon, je réexplique en détail :
1. Tu crées une connexion (jdbc)Connection con; Statement stmt; String username = "ton_user"; String password = "ton_password"; String url = "jdbc:mysql://localhost/ta_db"; try { con = DriverManager.getConnection(url, username, password); } catch (Exception e) { } stmt = con.createStatement();
2. Tu exécutes ta requête :ResultSet rs = stmt.executeQuery("select noclients, refsofi from facturation");
3. Tu boucles sur le resultsetwhile (rs.next())
3. et pour chaque ligne, tu fais quelque chose comme ceci :pageReponseBuffer.append("<option value='" + rs.getString(0) + "'>" + rs.getString(1) + "</option>");
Si avec ça tu vois toujours pas... :-)
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius] -
mon but:
Ref client [select avec les noms ] client n° [n° client]
avec : Ref client =texte
[select avec noms]= liste déroulante
client n°= texte
et [n° client] qui doit afficher le n° à chaque fois que l'on change [select avec noms]
merci (c'est plus clair là déjà) -
en fait j'ai crée ma base après donc je lisais à partir du répertoire et je voulais récupérer le no client correspondant.
comment générer les <option>... à partir de la base? -
Ok, mais alors pourquoi ne pas simplement aller lire dans ta base données le code et le nom du client ?
select noclients, refsofi from facturation
Après ça, tu boucles sur chacun de tes résultats et tu génères tes lignes <option ... >... </option>
Non ?
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius] -
j'ai crée une table facturation à 2 champs:
clé primaire: noclients int(8) -> num des clients ex:41100506
RefSofi char(6) -> noms de ma liste déroulante
pour les noms , je lis à partir du répertoire c:\mysql\data\sofichain
le type de fichier : fichiers base de données mysql (.frm; .MYD; .MID) est pour lire, je choisis juste les .frm pour avoir les noms en, 1 seul exemplaire (car 3 fichiers de meme nom pour chaque table; 1 table = 1 client)
merci michael -
Il faut effectivement faire une requête si tu veux aller chercher les données dans une base.
A quoi ressemblent les données dans la base ? Est-ce qu'il y a une clé ? Et à partir d'où vas-tu chercher les autres infos (tu as parlé de répertoire, ce sont des fichiers ? Un seul ? plusieurs ? Comment sont-ils formattés ?
Comment vas-tu faire le lien entre les deux types de données ? Est-ce que tu n'as pas toutes les infos dans une seule table, des fois ?
De ces réponse découlera l'endroit où tu mettras ta requête.
Michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius] -
query = "SELECT noclients FROM facturation WHERE refsofi="+request.getParameter("nomclients") +";";
voilà ma requete mais ne fonctionne pas car ne reconnait pas le getparameter (reste à null)
merci -
il faut que je fasse une requete?
comment l'executer pour l'afficher au bon endroit? -
Et quel est le problème ? Sur base du nom, tu vas récupérer le numéro de client pour chaque ligne que tu traites et tu l'affiches au bon endroit.
Si je peux t'éclairer plus, donne-moi des détails supplémentaires.
M.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius] -
j'ai mis les </option>
mes numero de client sont dans une base de donnée "facturation" pour les insérer, je dois faire la correspondance avec le nom
mais le probleme est là .
merci michael -
OK. alors voila :
1. ferme deja chacune des balises <option>
2. insère le numéro de client après le "value=" (à la place du nom), à moins que ce soit le numéro de client
3. change la value de ton <input name=showid> à -1 plutot que 'showid'
4. Remplace onChange="this.form.ShowId.value=41100255 par onChange="this.form.ShowId.value=this.value
Si tu essaies et que ça ne marche toujours pas, tu peux remettre le code HTML, mais avec juste deux ou trois <option>, sinon, ca va faire trop long !! :-)
Tiens-moi au courant.
Michael.
Ne vous souciez pas de n'être pas remarqué ; cherchez
plutôt à faire quelque chose de remarquable [Confucius]
- 1
- 2