Bonjour,

Voilà je cherche à faire des listes déroulantes liées. J'ai bien entendu regardé la doc.
Alors le contexte, on a plusieurs services, lorsqu'on en sélectionne un, on a le choix entre plusieurs antennes puis lors du choix de l'antenne, on a plusieurs équipes propre à cette antenne.
Pour le moment je n'ai fait que la partie service/antenne.

Voilà mes fichiers :

traitement.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
function getXhr()
{
	var xhr = null;
	if(window.XMLHttpRequest) // Firefox etc...
		xhr = new XMLHttpRequest();
	else if(window.ActiveXObject)
	{
		try{
			xhr = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			xhr = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	else 
	{
		alert("Votre navigateur ner supporte pas les objets XMLHTTPRequest...");
		xhr = false;
	}
	return xhr;
}
 
/* Appel de la methode lors de la selection */
function go()
{
	var xhr = getXhr();
	xhr.onreadystatechange = function()
	{
		if(xhr.readyState == 4 && xhr.status == 200)
		{
			leselect = xhr.responsetext;
			document.getElementById('antenne').innerHTML = leselect;
		}
	}
	xhr.open("POST","refreshAntennes.php",true);
	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	sel = document.getElementById('service');
	idservice = sel.options[sel.selectedIndex].value;
	//alert(idservice); //verif que la bonne valeur est stockée
	xhr.send("idservice="+idservice);
}
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
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
<body>
	<form>
		<fieldset style = "width: 500px">
			<legend> Liste liées</legend>
			<label>Services</label>
			<select name='service' id='service' onchange='go()'>
				<option value='-1'>Aucun</option>
				<?php
                                        include("connect.php");
                                        $res = mysql_query("SELECT Id_service AS ids, Lib_service
                                                FROM SERVICE
                                                ORDER BY No_Service");
                                        while($row = mysql_fetch_assoc($res))
                                        {
                                                echo "<option value='".$row["ids"]."'>".$row["Lib_service"]."</option>";
                                        }
                                ?>
			</select>
			<label>Antenne</label>
			<div id='antenne' style='display:inline'>
			<select name='antenne'>
				<option value='-1'>---- Antenne---</option>
			</select>
			</div>
		</fieldset>
	</form>
</body>

refreshAntennes.php

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
echo"<select name='antenne'>";
if(isset($_POST["idservice"]))
{
	$champs = $_POST['idservice'];
	include("connect.php");
	echo ($_POST["idService"]);
	$sql = mysql_query('SELECT Id_antenne AS ida,No_antenne, Lib_antenne
		 FROM ANTENNE
		 WHERE Id_service = $champs
		 ORDER BY No_antenne');
	while($row= mysql_fetch_assoc($res))
	{
		echo "<option value='".$row["ida"]."'>".$row["Lib_antenne"]."</options>";
	}
}
echo "</select>";
?>

La requête POST est bel et bien effectué. Coté JS la valeur du choix du service est bel et bien stockée et c'est bien l'id qui est gardée. Lorsque je sélectionne un service, la liste déroulante "antenne" se met directement en "Undefined".

Merci d'avance et bonne journée