[AJAX] Listes déroulantes dynamiques
Bonjour,
Je suis en train d'adapter un script de listes déroulantes dynamiques et je me heurte à un problème d'envoi de la valeur sélectionnée dans la seconde liste dynamique vers le fichier coté serveur de création de la troisième liste.
Voici mon code
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 71 72 73 74 75 76 77 78 79 80
|
<script language="Javascript" type="text/JavaScript">
// FONCTION DE REQUETE AJAX
function makeRequest(url,id_niveau,id_ecrire){
// CREER UNE INSTANCE (UN OBJET) DE LA CLASSE DESIREE FONCTIONNANT SUR PLUSIEURS NAVIGATEURS
var http_request = false;
// POUR MOZILLA ET SAFARI
if(window.XMLHttpRequest){
http_request = new XMLHttpRequest();
if(http_request.overrideMimeType){
// APPEL DE FONCTION POUR ECRASER L'EN TETE ENVOYE PAR LE SERVEUR (AU CAS OU IL NE S'AGIT PAS DE TEXT/XML, CAS DE CERTAINES VERSIONS DE FIREFOX
http_request.overrideMimeType('text/xml');
}
}
// POUR IE
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;
}
// FONCTION DE TRAITEMENT APPELLEE QUAND ON RECEVRA LA REPONSE
http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); }
// LANCEMENT DE LA REQUETE
http_request.open('POST', url, true);
// CHANGER LE TYPE MIME DE LA REQUETE POUR ENVOYER LES DONNEES AVEC LA METHODE POST
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
obj = document.getElementById("id_niv1").value;
data = "produitSociete=" + obj;
http_request.send(data);
obj1 = document.getElementById("id_niv2").value;
data1 = "produitCat=" + obj1;
http_request.send(data1);
}
// FONCTION DE TRAITEMENT
function traitementReponse(http_request,id_ecrire){
var affich = "";
if(http_request.readyState == 4){
// CAS AVEC REPONSE DE PHP EN MODE TEXTE
if(http_request.status == 200){
// CHARGEMENT DES ELEMENTS RECUS DANS LA LISTE
var affich_list = http_request.responseText;
obj = document.getElementById(id_ecrire);
obj.innerHTML = affich_list;
}
else{
alert('Un problème est survenu avec la requête.');
}
}
}
</script> |
La variable produitSociete passe bien (variable issue de la première liste) mais pas la variable produitCat (issue de la seconde liste)
Le problème vient de la partie AJAX (entre la ligne 49 et 56 je pense) car l'appel à mes fichiers côté serveurs fonctionne correctement.
Voici le code de la première liste :
Code:
1 2 3 4 5
|
<select name="produitSociete" id="id_niv1" onChange="makeRequest('ajax1.php','id_niv1','id_list2')">
<option value="">Choix</option>
<?=$optionListe?>
</select> |
Merci de votre aide.
Flo