source : http://siddh.developpez.com/articles/ajax/#LIV-A
<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>Test select dynamique</title>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
<script type='text/javascript'>
function getXhr(){
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éar le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
/**
* Méode qui sera appelésur le click du bouton
*/
function go(){
var xhr = getXhr();
// On déni ce qu'on va faire quand on aura la rénse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçet que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('appli').innerHTML = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","test.php",true);
// ne pas oublier çpour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de l'auteur
sel = document.getElementById('site');
idsite = sel.options[sel.selectedIndex].value;
xhr.send("idSite="+idsite);
}
</script>
</head>
<body>
<h1>coucou</h1>
<form method="POST" action="test2.php">
<label for="Sites">Sites :</label>
<select name="site" id="site" onchange='go()'>
<option value="no" selected="selected">Sélectionner</option>
<option value="CLE">CLE</option>
<option value="LHA">LHA</option>
<option value="MCA">MCA</option>
<option value="UGB">UGB</option>
<option value="UPL">UPL</option>
<option value="SFM">SFM</option>
<option value="STA">STA</option>
<option value="DPE">DPE</option>
<option value="SOV">SOV</option>
<option value="LEM">LEM</option>
<option value="FDB">FDB</option>
<option value="REV">REV</option>
<option value="SOM">SOM</option>
<option value="TAN">TAN</option>
<option value="ORA">ORA</option>
<option value="CSP">CSP</option>
</select><br/>
<label for="Appli">Appli :</label>
<div id='appli' style='display:inline'>
<select name="appli">
<option value='-1'>Choisir d'abord un site</option>
</select>
</div>
<input type="submit" value="Envoyer"/>
</form>
</body>
</html>
<?php
echo "<select name='appli'>";
if(isset($_POST["idSite"])){
mysql_connect("localhost","*****","****");
mysql_select_db("******");
$res = mysql_query("SELECT DISTINCT Application FROM file_password
WHERE site='".$_POST["idSite"]."' ORDER BY Application");
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["Application"]."'>".$row["Application"]."</option>";
}
}
echo "</select>";
?>