Listes déroulantes liées jsp

Signaler
Messages postés
1
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
19 juillet 2010
-
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
-
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>

1 réponse

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
125
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