Listes déroulantes liées jsp

twister207 Messages postés 1 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 19 juillet 2010 - 19 juil. 2010 à 17:34
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 19 juil. 2010 à 18:15
Bonjour,

Je poste pour la première fois dans ce forum et je vous remercie d'avance pour vos réponses.
Je suis débutante en jsp et je dois alimenter deux listes déroulantes l'une en fonction du choix de l'autre. J'ai essayé avec onchange="this.form.submit()" ca marche nickel sauf que je perds l'élément sélectionné de ma première liste ( ce qui s'est avéré être normal :) ) du coup, j'ai vu pas mal de posts sur de nombreux forums mais malheureusement ils sont tous faits avec du php et javascript or je ne sais pas coder en php :( (je ne code qu'en java) je suis finalement tombée sur un code qui m'a paru simple en php et j'ai essayé de le modifier mais je n'obtiens pas de résultat : mes combos sont vides. Je vous joins mon code en espérant que vous sauriez m'aider parce que ça fait un bon moment que je cherche la solution.
Bien à vous.

CODE:

<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<jsp:directive.include file="Header.jsp" />

<html>
<% String myBridge = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
Class.forName("com.mysql.jdbc.Driver").newInstance();
String sqlUser = "";
String sqlPwd = "";
Class.forName(myBridge);
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/gestiondincident",sqlUser,sqlPwd);
Statement stat = conn.createStatement();

%>
<head>
<script language="javascript">
function cat1(){ // fonction qui remplit le premier combobox
i=0;
j=0;
var listesection = Array();
res="SELECT incident.nom, typeincident.nom from incident,typeincident where idTypeIncident = idIncident" ;
res2 = stat.executeQuery(res);
while (res2.next()) {
listesection[i] = Array("res2.get(1)"," res2.get(2)");
i++; }
// la requête qui permet de lire dans la base de donnée la relation entre les 2 tables et permettre l'affichage
var combo = document.getElementById('combo1');
var selected_value = combo.value;
combo_2 = document.getElementById('combo2');
combo_2.options.length = 1;

for(var i=0,j=1;i<listesection.length;i++)
{
if(listesection[i][0]==selected_value)
{
element = new Option(listesection[i][1], listesection[i][1]);
combo_2.options[j] = element;
j++;
}
}
}
</script>
</head>

<form name="formulaire" action="newjsp3.jsp" method="post" style="width:35%;margin:auto;padding-bottom:20px;">
Application concernée ,
<select name="appli" id="combo1" onchange="cat1()">
</select>,

----

Type d'incident ,
<select name="type" id="combo2" >
</select>


</form>
</html>
A voir également:

1 réponse

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 juil. 2010 à 18:15
Salut,

Aïe, on ne code pas en java comme on code en php : en java, tu ne dois pas mettre de code java dans ta jsp : c'est illisible, source de bug, et indebuggable ! Par exemple dans le code que tu nous montres là, tu as une belle fuite mémoire...

Il te faut faire un servlet qui se chargera de faire la communication avec la base de données et charger les données, et n'utiliser la jsp QUE pour le formattage de la page HTML résultante qui sera envoyée au navigateur.

______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
Rejoignez-nous