[AJAX] lié une liste a deux champs texte
Bonjour,
J'ai une liste déroulante suivant la valeur selectionner, elle complète deux champ texte. Pour ce faire j'ai 3 fichier
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
<td>
<select name = "ccs" id = "ccs" style="width : 70px" onchange="getCcs(this)"/>
<option value = -1>----CCS----</option>
<%
DBConnexion dbc_ccs = new DBConnexion();
String sql_ccs = "SELECT num_ccs FROM ccs", num_ccsBfr;
ResultSet resultat_ccs = dbc_ccs.recupereRequete(sql_ccs);
while(resultat_ccs.next())
{
num_ccsBfr = resultat_ccs.getString("num_ccs");
out.print("<option value=" + num_ccsBfr + ">" + num_ccsBfr + "</option>");
}
dbc_ccs.closeConnexion();
%>
</select>
</td>
<script language="javascript">
function getCcs(ccs)
{
traitementNomCcs(ccs);
traitementCdFinancier(ccs);
}
function recupererXhr()
{
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');
}
return xhr;
}
function traitementNomCcs(ccs)
{
var xhr = recupererXhr();
if(xhr) {
xhr.open('GET', '/application/envoyerTraitementNomCcs.jsp?type=' + ccs, true);
xhr.onreadystatechange = function() {
document.getElementById('nomCcs').innerHTML = xhr.responseText;
};
xhr.send(null);
}
}
function traitementCdFinancier(ccs)
{
var xhr = recupererXhr();
if(xhr) {
xhr.open('GET', '/application/envoyerTraitementCdFinancier.jsp?type=' + ccs, true);
xhr.onreadystatechange = function() {
document.getElementById('codeFinancier').innerHTML = xhr.responseText;
};
xhr.send(null);
}
}
</script>
<td>
<input type = "text" id ="nomCcs" name = "nomCcs" readonly>
</td>
<td><input type = "text" name = "codeFinancier" size= "1" maxlength = "5"></td> |
Page EnvoyerTraitementNomCcs.jsp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<%
DBConnexion dbc_nomCcs = new DBConnexion();
String sql_nomCcs = "null", type_donnees = request.getParameter("type").replaceAll("'", "''"),name_donnees= "null";
if(type_donnees =="K3212C1" || type_donnees =="K3212C3" || type_donnees =="K3212C5" || type_donnees =="K3212C7") {
sql_nomCcs = "SELECT nom_agence FROM agence INNER JOIN ccs ON agence.id_agence = ccs.id_agence where num_ccs='" + type_donnees + "'";
name_donnees = "nom_agence";
} else if(type_donnees == "K3219O2" || type_donnees == "K3219CS") {
sql_nomCcs = "SELECT nom_pole FROM pole INNER JOIN ccs ON pole.id_pole = ccs.id_pole where num_ccs='" + type_donnees + "'";
name_donnees = "nom_pole";
}
ResultSet resultat_nomCcs = dbc_nomCcs.recupereRequete(sql_nomCcs);
if(resultat_nomCcs.isLast()) {
out.print(resultat_nomCcs.getString(name_donnees).replaceAll("\"", "\\\""));
}
dbc_nomCcs.closeConnexion();
%> |
Page envoyerTraitementCdFinancier
Code:
1 2 3 4 5 6 7 8 9 10
|
<%
DBConnexion dbc_cdFinancier = new DBConnexion();
String sql_cdFinancier = "SELECT num_code_financier FROM ccs INNER JOIN code_financier ON ccs.id_cd_financ = code_financier.id_cd_financ WHERE num_ccs'" + request.getParameter("type").replaceAll("'", "''") + "'";
ResultSet resultat_cdFinancier = dbc_cdFinancier.recupereRequete(sql_cdFinancier);
if(resultat_cdFinancier.isLast()) {
out.print(resultat_cdFinancier.getString("code_financier").replaceAll("\"", "\\\""));
}
dbc_cdFinancier.closeConnexion();
%> |
Voila le code que j'ai effectuer mais celui-ci me gère des erreur dans mes requète SQL. Ou peut-être, j'ai mal conçu mes pages, je sais pas.
Merci