Ajax - lier 3 listes déroulantes

neopolo -  
 hazar2002 -
Bonjour,

J'essaie, dans un formulaire de lier 3 lites déroulantes de la manière suivante : faire dépendre les deux dernières listes déroulantes en fonction du résultat de la première.
L'id de la première liste déroulante est id_niveau
Ensuite j'aimerai que cette valeur soit injectée dans deux pages : url et url_2 où j'ai deux requêtes différentes
url renvoie la valeur id_ecrirebb
url_renvoie la velur id_ecrirecc
Voici le script que j'ai bidouillé en essayant d'injecter une fonction dans l'autre :

<script language="Javascript" type="text/JavaScript">
function makeRequest(url,url_2,id_niveau,id_ecrirebb,id_ecrirecc)
{ 

var http_request = false;
if (window.XMLHttpRequest)
{ 
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)
{ 
http_request.overrideMimeType('text/xml');
} 

} 
else if (window.ActiveXObject)
{ 
try
{ 
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} 
catch (e)
{
try
{ 
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} 
catch (e) {}
} 
}

if (!http_request)
{ 
alert('Abandon :( Impossible de créer une instance XMLHTTP');
return false;
} 



http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrirebb,id_ecrirecc); }
http_request.open('POST', url, true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
obj=document.getElementById(id_niveau);
data1="val_sel="+obj.value;
http_request.send(data1);
http_request.close();


http_request.open('POST', url_2, true);
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
obj=document.getElementById(id_niveau);
data2="val_sel="+obj.value;
http_request.send(data2);

} 

function traitementReponse(http_request,id_ecrirebb,id_ecrirecc)
{ 
var affich="";
if (http_request.readyState == 4)
{ 
if (http_request.status == 200)
{  
var affich_list=http_request.responseText;
obj = document.getElementById(id_ecrirebb);
obj.innerHTML = affich_list;
} 
else
{ 
alert('Un problème est survenu avec la requête.');
} 
} 
traitementReponseb(http_request,id_ecrirecc);
} 



function traitementReponseb(http_request,id_ecrirecc)
{ 
var affich="";
if (http_request.readyState == 4)
{ 
if (http_request.status == 200)
{ 
var affich_list2=http_request.responseText;
obj = document.getElementById('id_ecrirecc');
obj.innerHTML = affich_list2;
} 
else
{ 
alert('Un problème est survenu avec la requête.');
} 
} 
} 
</script>


Or celui-ci ne fonctionne pas, je n'ai pas de message d'erreur mais il me renvoie uniquement que la première valeur 'id_ecrirebb'
Comment faire pour recevoir également id_ecrirecc ?
Peut-être que la solution serait l'utilisation du responseXML au lieu du responseText ?
Quelqu'un pourrait m'aider ? Je sèche....

Merci d'avance
A voir également:

1 réponse

hazar2002
 
Bonjour Tony,

Pourrais-tu m'envoyer ta solution pour lier trois listes déroulantes.

Voici mon adresse:

hazar_2002dz@yahoo.fr

merci
0