[AJAX] 3 Listes liées en AJAX
Bonjour,
J'essaye de lier 3 listes générées par une base de données. Jusqu'à maintenant j'ai réussis à lier deux listes : type_formation et niveau_formation. Cependant j'aimerai que niveau_formation soit lié à une autre liste qui est specification_formation. Voici le code que j'ai mis en place mais qui ne fonction que pour les 2 premières listes
menu.php
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 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
| <html>
<head>
<title>Inscription</title>
<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é par le navigateur
{
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest");
xhr = false;
}
return xhr;
}
function go_niveau()
{
var xhr = getXhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
leselect = xhr.responseText;
document.getElementById('niveau').innerHTML = leselect;
}
}
xhr.open("POST","menu_niveau.php",true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
sel = document.getElementById('type');
id_type_formation_menu = sel.options[sel.selectedIndex].value;
xhr.send("id_type_formation_menu="+id_type_formation_menu);
}
</script>
</head>
<body>
<form>
<select name="type_formation" id="type" onchange="go_niveau()">
<option value="-1" selected="selected">Autre</option>
<?php
$Id = mysql_connect('localhost','root',"");
mysql_select_db("suiviautorisation",$Id);
$ReqSQL = "SELECT * FROM `type_formation_menu` ORDER BY `id_type_formation_menu`";
$Res = mysql_query($ReqSQL);
if($Res == false)
{
echo ("Erreur requete");
}
while ($Ligne = mysql_fetch_array($Res))
{
echo("<option value=\"".$Ligne["id_type_formation_menu"]."\">".$Ligne["type_formation_menu"]."</option>");
}
mysql_close($Id);
?>
</select>
<div id="niveau">
<select name="niveau_formation">
<option value="-1" selected="selected">Autre</option>
</select>
</div>
<div id="specification">
<select name="specification_formation">
<option value="-1" selected="selected">Autre</option>
</select>
</div>
</form>
</body>
</html> |
menu_niveau.php
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
| <script>
function go_specification()
{
var xhr = getXhr();
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4 && xhr.status == 200)
{
leselect = xhr.responseText;
document.getElementById('specification').innerHTML = leselect;
}
}
xhr.open("POST","menu_specification.php",true);
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
sel = document.getElementById('niveau');
id_niveau_formation_menu = sel.options[sel.selectedIndex].value;
xhr.send("id_niveau_formation_menu="+id_niveau_formation_menu);
}
</script>
<?php
echo ("<select name=\"niveau_formation\" id=\"niveau\" onchange=\"go_specification()\">");
if(isset($_POST["id_type_formation_menu"]))
{
$id_type_formation_menu = $_POST["id_type_formation_menu"];
$Id = mysql_connect("localhost","root","");
mysql_select_db("suiviautorisation",$Id);
$ReqSQL = "SELECT * FROM `niveau_formation_menu` WHERE `id_type_formation_menu` = '$id_type_formation_menu' ORDER BY `id_niveau_formation_menu`";
$Res = mysql_query($ReqSQL);
if($Res == false)
{
echo ("Erreur requete");
}
while ($Ligne = mysql_fetch_array($Res))
{
echo("<option value=\"".$Ligne["id_niveau_formation_menu"]."\">".$Ligne["niveau_formation_menu"]."</option>");
}
mysql_close($Id);
}
echo "</select>";
?> |
menu_specification.php
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
| <?php
echo ("<select name=\"specification_formation\">");
if(isset($_POST["id_niveau_formation_menu"]))
{
$id_niveau_formation_menu = $_POST["id_niveau_formation_menu"];
$Id = mysql_connect("localhost","root","");
mysql_select_db("suiviautorisation",$Id);
$ReqSQL = "SELECT * FROM `specification_formation_menu` WHERE `id_niveau_formation_menu` = '$id_niveau_formation_menu' ORDER BY `id_specification_formation_menu`";
$Res = mysql_query($ReqSQL) or die(mysql_error());
if($Res == false)
{
echo ("Erreur requete");
}
while ($Ligne = mysql_fetch_array($Res))
{
echo("<option value=\"".$Ligne["id_specification_formation_menu"]."\">".$Ligne["specification_formation_menu"]."</option>");
}
mysql_close($Id);
}
echo "</select>";
?> |
Merci de votre aide