Sélection d'un élément d'une dropdownlist

Signaler
Messages postés
7
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
30 mars 2010
-
Messages postés
5
Date d'inscription
lundi 15 décembre 2008
Statut
Membre
Dernière intervention
23 avril 2010
-
Bonjour, j'ai un souci avec une dropdownlist que je charge avec la base de données.lorsque je sélectionne un élément de la dropdownlist, la page se charge à nouveau et je vois la progressbar de chargement dans la barre d'état du navigateur.J'aimerai pouvoir annuler cet effet de chargement.
Merci et à bientôt.

2 réponses

Messages postés
417
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
21 juillet 2010
1
Bonsoir,

C'est normal : un changement dans un contrôle asp ne peut être géré que côté serveur. Tu ne peux pas l'éviter comme tel.
En revanche, tu peux éviter que l'appel au serveur ne se voit en utilisant de l'ajax.

GGtry
Messages postés
5
Date d'inscription
lundi 15 décembre 2008
Statut
Membre
Dernière intervention
23 avril 2010

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>

<%@page import="Test.HtmlListConstruct" %>
<fieldset>
<legend>Projects</legend>



<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>





<select id="waSelect" ></select>





</fieldset>

</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( "");

}

}

}
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