Bonjour,
Si quelqu'un peut m'aider s'il vous plais.
On effet il s'agit de 2 ddl l'une conditionne les valeurs de l'autre.
J'utilise pour cela ajax,jsp et servlet comme suis.
J'envoi depuis js dans la jsp la valeur selectionnée par l'utilisateur à la servlet.
cette derniere construit un xml et le rend de nouveaux à la jsp pour le transformer en html et remplir donc la second ddl.
voici donc la jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" >
var xmlhttp;
function showProject(prj)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="ServletxmlGenerator.java";
projectcode = prj.options[prj.selectedIndex].value;
alert(projectcode);
//url=url+"?projectCode="+projectcode;
url=url+"?projectCode="+encodeURIComponent(projectcode);
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged()
{
var xmlDoc=xmlhttp.responseXML.documentElement;
var nodes = xmlDoc.getElementsByTagName("item");//récupérer l'element item de responsexml
var oSelect = document.getElementById("workareaSelect");
var oOption, oInner;
if (xmlhttp.readyState==4 || xmlhttp.readyState=="complete")
{
oSelect.innerHTML = "";//initialisation
for (var i=0, c=nodes.length; i<c; i++)
{
oOption = document.createElement("option");
oOptionC=document.createElement("/option");
oInner = document.createTextNode(nodes[i].getAttribute("name"));
oOption.value = nodes[i].getAttribute("id");//donner val à option
oOption.TEXT_NODE="id";
oOption.appendChild(oInner);
oSelect.appendChild(oOption);
oSelect.appendChild(oOptionC);
}
}
}
function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
return new XMLHttpRequest();
}
if (window.ActiveXObject)
{
// code for IE6, IE5
return new ActiveXObject("Microsoft.XMLHTTP");
}
return null;
}
</script>
<%@page import="Test.HtmlListConstruct" %>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>exemplexml</title>
</head>
<body>
<%@page import="Test.HtmlListConstruct" %>
<fieldset>
<legend>Projects</legend>
<div id="projects">
<p id="projects">
<select id="projectCode" name="projectCode" onchange="showProject(this);">
<option value="none">Selection</option>
<%HtmlListConstruct L1 = new HtmlListConstruct();%>
<%=L1.ConstruireListProject("Project","SELECT from Projects projects".toString())%>
</select>
</p>
<p id="wa">
<select id="waSelect" ></select>
</p>
</div>
</fieldset>
</body>
</html>
et la servlet et comme suit:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.ehcache.config.Configuration;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.Transaction;
import javax.servlet.ServletOutputStream;
import net.sf.hibernate.Query;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.ehcache.config.Configuration;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.Transaction;
import javax.servlet.ServletOutputStream;
import Test.Wa;
/**
* Servlet implementation class ServletTable
*/
public class ServletxmlGenerator extends HttpServlet {
public ServletxmlGenerator() {
super();
// TODO Auto-generated constructor stub
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String projectcode=request.getParameter("idprj");
System.out.println("++++projectCode:=" +projectcode);
Session s = null;
Transaction tx;
try {
s = HibernateUtil.currentSession();
tx = s.beginTransaction();
Query query = s.createQuery("SELECT from Wa wa where wa.ProjectCode='"+projectcode+"'");
response.setContentType("text/xml");
PrintWriter out = response.getWriter();
out.write( "<?xml version=\"1.0\" encoding=\"utf-8\"?>");
out.write("<wa>");
//constriure le xml
if(projectcode!=null)
{
for(Iterator it=query.iterate();it.hasNext();)
{
if(it.hasNext())
{
Wa object=(Wa)it.next();
out.write( "<item id=\"" + object.getIdWA() + "\" name=\"" + object.getWAName() + "\" />");
}
}
}
out.write("</wa>");
} catch (HibernateException e) {
e.printStackTrace();
}
}
}
mais le parametre ne s'envoit pas en executant la servlet et meme la jsp
Que je peut faire.
Merci