Bonjour la communauté,
Tout d'abord, je tiens à vous prévenir: je débute en ajax!
Pour un projet, je dois remplir deux listes déroulantes avec de l'ajax. Ces deux listes ne sont pas reliées entres-elles. Elles sont pour l'instant indépendantes.
Pour alimenter mes deux selects, j'ai donc deux fonctions:
1. fonction proposition() pour remplir le select proposition;
2. fonction aide() pour remplir mon select aide;

La liste aide se remplit correctement. En revanche, la liste proposition ne se remplit pas. Pourtant, j'ai copié sur la liste aide. Je sais qu'elle fonctionne car j'ai fait en sorte d'afficher dans une div les valeurs retournées par la fonction proposition et ça marche.
Je pense que le problème vient au moment de l'exécution des fonctions. Un conflit peut-être! J'ai besoin de vos lumières.
Vous en remerciant par avance,


voici mon code en HTML :
<select aria-label="Filtrer les propositions" id="selectproposition"></select>
<select aria-label="Filtrer les aides techniques" id="selectaide"></select>

voici mon script en Ajax :
<script>
proposition();
aide();

//objet ajax
function getXmlhttp() {
if (window.XMLHttpRequest)
return new XMLHttpRequest();
else if (window.ActiveXObject)
return new ActiveXObject("Msxml2.XMLHTTP");
else
throw new Error("Could not create HTTP request object.");
}


//initialisation de la liste des propositions sélectionnées
function proposition(){
var para="id="+que_id.value;
xmlhttp= getXmlhttp();
xmlhttp.open("GET","http://localhost/atalan/www/index.php?m=questionnaire&a=ajaxproposition&" + para,true);
xmlhttp.onreadystatechange=mafonction;
xmlhttp.send();

function mafonction() {
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
selectproposition.innerHTML=xmlhttp.responseText;
}
}
}


//initialisation de la liste des aides techniques utilisées
function aide() {
var para="que_id="+que_id.value;
xmlhttp= getXmlhttp();
xmlhttp.open("GET","http://localhost/atalan/www/index.php?m=questionnaire&a=ajaxaideutilise&" + para,true);
xmlhttp.onreadystatechange=mafonction;
xmlhttp.send();

function mafonction() {
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
selectaide.innerHTML=xmlhttp.responseText;
}
}
}


</script>

voici mon code PHP :

function a_ajaxproposition() {
extract($_GET);
$resultprop = Questionnaire::afficherProposition($id);
if ($resultprop->rowCount()>0) {
while ($row=$resultprop->fetch(PDO::FETCH_ASSOC)) {
extract($row);
echo "<option value='$pro_id'>$pro_intitule</option>";
}
} else {
echo "Auncune proposition";
}
}


function a_ajaxaideutilise() {
extract($_GET);
$resultaideutilise = Aide::listeAideUtiliseQuestionnaire($que_id);
if ($resultaideutilise->rowCount()>0) {
while ($row=$resultaideutilise->fetch(PDO::FETCH_ASSOC)) {
extract($row);
echo "<option value='$aid_id'>$aid_nom</option>";
}
} else {
echo "Auncune aide technique utilisée";
}
}
Salut

Si tu pouvais indenter / mettre un tag pour ton code merci.

Désolé, revoici mon code avec l'indentation.

Voici le code en HTML :
<select aria-label="Filtrer les propositions" id="selectproposition"></select>
<select aria-label="Filtrer les aides techniques" id="selectaide"></select>

voici mon script en Ajax :
<script>
proposition();
aide();

//objet ajax
function getXmlhttp() {
	if (window.XMLHttpRequest)
		return new XMLHttpRequest();
	else if (window.ActiveXObject)
		return new ActiveXObject("Msxml2.XMLHTTP");
	else
		throw new Error("Could not create HTTP request object.");
}


//initialisation de la liste des propositions sélectionnées
function proposition(){
	var para="id="+que_id.value;
	xmlhttp= getXmlhttp();
	xmlhttp.open("GET","http://localhost/atalan/www/index.php?m=questionnaire&a=ajaxproposition&" + para,true);
xmlhttp.onreadystatechange=mafonction;
xmlhttp.send();

function mafonction() {
	if (xmlhttp.readyState==4 && xmlhttp.status==200)
		{
			selectproposition.innerHTML=xmlhttp.responseText;
		}
	}
}


//initialisation de la liste des aides techniques utilisées
function aide() {
	var para="que_id="+que_id.value;
	xmlhttp= getXmlhttp();
	xmlhttp.open("GET","http://localhost/atalan/www/index.php?m=questionnaire&a=ajaxaideutilise&" + para,true);
xmlhttp.onreadystatechange=mafonction;
xmlhttp.send();

function mafonction() {
	if (xmlhttp.readyState==4 && xmlhttp.status==200) {
		selectaide.innerHTML=xmlhttp.responseText;
	}
}
}


</script>

voici mon code PHP :

function a_ajaxproposition() {
	extract($_GET);
	$resultprop = Questionnaire::afficherProposition($id);
	if ($resultprop->rowCount()>0) {
		while ($row=$resultprop->fetch(PDO::FETCH_ASSOC)) {
			extract($row);
			echo "<option value='$pro_id'>$pro_intitule</option>";
		}
	} else {
		echo "Auncune proposition";
	}
}


function a_ajaxaideutilise() {
	extract($_GET);
	$resultaideutilise = Aide::listeAideUtiliseQuestionnaire($que_id);
	if ($resultaideutilise->rowCount()>0) {
		while ($row=$resultaideutilise->fetch(PDO::FETCH_ASSOC)) {
			extract($row);
			echo "<option value='$aid_id'>$aid_nom</option>";
		}
	} else {
		echo "Auncune aide technique utilisée";
	}
}