Bonjour à tous,
Actuellement j'essaye de faire fonctionner 4 dropdownlist dans un environnement j2ee sous eclipse.
En utilisant ajax j'envoie mes paramètres à une autre jsp qui le reçoit puis à par partir d'une requête HQL je parviens à construire les 4.
Le problème maintenant quand on change la valeur de la première le deuxième change mais pas la 3 et la 4 que je veux bien qu'il seront changé aussi de meme.
L'autre difficulté que je reçoit la reponse ajax dans un div comme vous allez le voir dans mon code ça me perturbe enormement.
Comment je peux faire changer les 2 autres?
Merci:
Voila le code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html dir="ltr">
<head>
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/dojo/1.2/dijit/themes/soria/soria.css">
<style type="text/css">
body, html { font-family:helvetica,arial,sans-serif; font-size:90%; }
</style>
<title>Imputation OPC</title>
<script type='text/javascript' src="imput_opc.js">
</script>
<script type="text/javascript" src="calendarDateInput.js"></script>
</head>
<body class="soria ">
<%@page import="Test.HtmlListConstruct" %>
<%@page import="Test.HtmlListTaskConstruct" %>
<%@page import="Test.HtmlListActivityConstruct" %>
<%@page import="Test.ServletImputOPC"%>
<%@ page import="java.util.*" %>
<%@page import= "java.io.IOException"%>
<%@page import= "java.io.PrintWriter"%>
<form method="post" action="Submit" name="frm" >
<p><label>Choose the Date:</label>
<input type="text" name="date1" id="date1" value=" " dojoType="dijit.form.DateTextBox" required="true" onBlur="Displaydate();" /></p>
<label>Daily Time Sheet for:</label>
<input type="text" id="txtdate" name="txtdate" />
<table border="1" Background=" " Bordercolor="" Bgcolor="#0099CC" width="470" align="left" id='tab'>
<tr>
<td width=70">
<label> Activity </label>
<select name='activity' id='activity' onchange='gotoProject()'>
<option value='-1'>Aucun</option>
<%HtmlListActivityConstruct LA=new HtmlListActivityConstruct();%>
<%=LA.ConstructListActivity("Activity","SELECT from Activityopc activityopc".toString()) %>
</select>
</td>
<td width="70">
<label>Project</label>
<div id="prjsel" style='display:inline'>
<select name='projet' id='projet' onchange='go()'>
<option value='-1'>Aucun</option>
</select>
</div>
</td>
<td width="50">
<label>WA</label>
<div id="wa" style='display:inline'>
<select name='wasel' id="wasel" onchange='InputCount()'>
<option value='-1'>Choose a project</option>
</select>
</div>
</td>
<td width="100">
<label>Task</label>
<select name='task' id='task' >
<option value='-1'>Aucun</option>
<%HtmlListTaskConstruct L2=new HtmlListTaskConstruct(); %>
<%=L2.ConstruireListTask("Task","SELECT from Tasks tasks")%>
</select>
</td>
</tr>
</table>
<br/><br/>
<table>
<tr></tr>
<tr>
<td>
<button id="editb" type="button" onClick="visibilite(popup);">
<img src="C:\Documents and Settings\Administrateur.SWEET-C4703A15E\Bureau\Nouveau dossier (3)\Nouveau dossier (3)\image\edit.gif"/>
</button>
</td>
</tr>
</table>
<br/>
<br/>
<div id="popup" style="display:none;">
<table border="1" Bgcolor="#0099CC" id='mytab' align="left">
<tr>
<td><label>Start</label><input id="start" name="start" /></td>
<td><label>End</label><input id="end" name="end"/></td>
<td><label>Duration</label><input id="output" name="output" type="text" onBlur="calculateTimeSpent(start,end,output);"/></td>
<td>
<div id="wacount" style='display:inline'>
<label>Input count</label><input type="text" id="inputwa" name="inputwa" value="" ></div>
</td>
<td><label>Unit</label>
<select dojoType="dijit.form.ComboBox" id="unit" name="unit">
<option>Km</option>
<option>Grid Cell </option>
<option>Link</option>
</select>
</td>
<td><label>Number Performed</label><input type="text" id="nperformed" name="nperformed" dojoType="dijit.form.NumberTextBox" name="nperformed" value="" constraints="{min:0,max:100000,places:0}" required="true" invalidMessage="Invalid quantity." /></td>
<td><label>% Complete</label>
<input type="text" id="percentc" name="percentc" onfocus="calculateAvencement(inputwa,nperformed,task,percentc);"></td>
</tr>
</table>
<table id="tabsave"><tr></tr>
<tr>
<td>
<button id="save" type="button" onClick="AjouterLigne();">
<img src="C:\Documents and Settings\Administrateur.SWEET-C4703A15E\Bureau\Nouveau dossier (3)\Nouveau dossier (3)\image\Save.jpg " />
</button>
</td>
<td>
<button id="undo" type="button" onClick="deleteARow();">
<img src="C:\Documents and Settings\Administrateur.SWEET-C4703A15E\Bureau\Nouveau dossier (3)\Nouveau dossier (3)\image\undo.png " />
</button>
</td>
</tr>
</table>
</div>
<br/>
<br/>
<br/>
<div id="timesheet">
<table border="1" width="900" id="mysheet" align="left">
<tr bgcolor="#0099FF"><label> Daily Time Sheet </label></tr>
<tr>
<td></td>
<td >Activity</td>
<td >Project</td>
<td >WArea</td>
<td >Task</td>
<td >Duration</td>
<td >% complete</td>
</tr>
</table>
<table>
<tr></tr>
<tr>
<td>
<input type="submit" value="send" style="background-color : #0099FF " onClick="HidOthers();"/>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
POur le javascript aussi:
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject)
{ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
/***
** Méthode qui sera appelée sur le click du item activity
***/
function gotoProject()
{
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200)
{
selects = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('prjsel').innerHTML = selects;
}
};
xhr.open("POST","ajaxPrj.jsp",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
act = document.getElementById('activity');
idact = act.options[act.selectedIndex].value;
xhr.send("idact="+idact);
}
/***
** Méthode qui sera appelée sur le click du item projectCode
***/
function go(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200)
{
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('wa').innerHTML = leselect;
}
};
xhr.open("POST","ajaxWa.jsp",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
sel = document.getElementById('projet');
idprojet = sel.options[sel.selectedIndex].value;
xhr.send("idprojet="+idprojet);
}
/***
** Méthode qui sera appelée sur le click du item wa pour deteminer inputCount
***/
function InputCount()
{
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200)
{
leswa = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('wacount').innerHTML = leswa;
}
};
xhr.open("POST","AjaxInputCount.jsp",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
tel = document.getElementById('wasel');
idwa = tel.options[tel.selectedIndex].value;
xhr.send("idwa="+idwa);
}
J'aime bien lorsque activity=absence rien ne s'affiche dans le projet WA et Task.
pour cela:
<html><head><title></title></head>
<body>
<select name='projet' id='projet' onchange='go()'>
<%
String idact=request.getParameter("idact");
System.out.print("idact:=" +idact);
if(idact.equalsIgnoreCase("Project")){
try {
Session s = null;
Transaction tx;
s = HibernateUtil.currentSession();
tx = s.beginTransaction();
Query query = s.createQuery("SELECT from Projects projects");
for(Iterator it=query.iterate();it.hasNext();)
{
if(it.hasNext()){
Projects prj=(Projects)it.next();
out.print( "<option id=\"" +prj.getProjectObject() + "\" value=\"" + prj.getProjectCode() + "\" >" +prj.getProjectCode()+ "</option>");
}
}
}catch (HibernateException e) {
e.printStackTrace();}
}
else
if (idact.equalsIgnoreCase("absence"))
{%>
<option>Aucun</option>
<%}%>
</select>
</body>
</html>
Merci.