Requete sql avec JSTL

Résolu
beka74 Messages postés 6 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 18 août 2009 - 12 août 2009 à 14:54
beka74 Messages postés 6 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 18 août 2009 - 14 août 2009 à 10:04
bonjour,

je suis en stage et je travail avec JEE(jsp, sevlet, jstl).

je travail sur des formulaires que j'aimerai pré remplir à travers une base de donnée en utilisant du code jstl (JEE) sql
alors j'ai une combo box selection avec un certain nombre de choix qui est alimenté par une table de la base.
j'aimerai que lorsque je fait une selection d'un choix, les autre champs qui corresponde a la table doivent ètre afficher aussi et doivent changer, si on fait un autre choix et ils seront affichés dans les zone de saisie de formulaire (input).

Exemple: j'ai une table personne avec les attribut nom, age, taille, poids.
je vais afficher les noms dans un <select>
et age, taille, poids dans des de mon formulaire

voila mon code:

<!----------------requete------------------------>
<sql:query var="rs" dataSource="bdReference">
select* from persone
</sql:query>
<!---------------------------------------------->

<td colspan="2">

<select name="nom" id="nom" >
<c:forEach var="row" items="${rs.rows}">
<c:choose>
<c:when test="${row.nom eq exp.personne}"><option selected>${row.nom}</option> </c:when>
<c:otherwise>
<option>${row.nom}</option>
</c:otherwise>
</c:choose></c:forEach>

</select>

</td>

age " />
taille " />
poids " />



le problème est que j'arrive a afficher la liste nom, mais lorsque je sélectionne un nom, rien ne s'affiche dans les champs age, taille, poids.
je pense qu'il faut une fonction javascript, mais je ne sais pas comment faire.
merci de m'aider.

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
12 août 2009 à 15:57
Salut,

Tu as plusieurs façon de faire, de la plus propre mais inneficace (fonctionnera dans tout les cas, mais prendra du temps) à la plus rapide mais la plus risquée (fonctionnera que si l'utilisateur a javascript d'activé... donc prévoir une solution de rechange !) :
- Faire un submit de ton formulaire afin de renseigner le serveur de regénérer la page avec les bonnes données sur le clic d'un bouton inclu dans ta page HTML (aucun javascript là dedans, donc compatible avec tout navigateur !).
- Faire un submit de ton formulaire afin de renseigner le serveur de regénérer la page avec les bonnes données lors de la sélection dans la liste grâce à une fonction javascript.
- Charger toutes les données dans des variables javascripts dès le chargement de ta page (beaucoup plus rapide en utilisation, mais consomme beaucoup de bande passante pour pas grand chose, et surtout, s'il y a beaucoup de données !!!)
- Faire une requête en AJAX (javascript donc) qui te permettra d'envoyer une requête au serveur afin qu'il charge les données dans un flux XML à destination du navigateur.
- Faire une requête en javascript asynchrone qui te permettra d'envoyer une requête au serveur afin qu'il charge les données dans un flux JSon à destination du navigateur (beaucoup plus efficace et facile à manipuler par du code javascript !).

Voilà, à toi de décider maintenant...
______________________________________
DarK Sidious
3
beka74 Messages postés 6 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 18 août 2009
13 août 2009 à 13:53
salut DarK,
merci pour ta réponse , mais j'avoue que je ne voie pas comment procéder. tu n'as pas un exemple a me montré avec du code en utilisant l'option "- Faire un submit de ton formulaire afin de renseigner le serveur de regénérer la page avec les bonnes données lors de la sélection dans la liste grâce à une fonction javascript. " que tu m'as proposé,
merci encore une fois
a+
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
13 août 2009 à 14:00
Salut,

Et bien sur l'événement onChange de ton select, tu submite le formulaire contenant ton select, ainsi une requête est envoyé au serveur avec la valeur sélectionnée, et tu n'as plus qu'à charger les données dans ta base de données selon cette valeur. C'est le B.A.-BA de tout formulaire HTML...

Ca fonctionne comme un bouton submit, sauf que ce n'est pas l'utilisateur qui le délenche, mais toi par un code javascript (en javascript : tonFormulaire.submit();)
______________________________________
DarK Sidious
0
beka74 Messages postés 6 Date d'inscription lundi 27 avril 2009 Statut Membre Dernière intervention 18 août 2009
14 août 2009 à 10:04
merci DarK Sidious pour ta réponse
bonne journée
je suis entrain de travailler dessus, j'espére que ce va marcher.
A+
0
Rejoignez-nous