Listes déroulantes liées

maguidi -  
 maguidi -
Bonjour,
je suis vraiment désespéré j suis en stage et j dois réaliser 4 listes déroulantes liées
j'ai des articles qui appartiennent à des familles et des sous familles. Avant d'arriver à l'article on a une familles et 4 sous familles, par exemple l'article A1 appartient a la sous famille3 qui appartient à la sous famille2 qui appartient à la sous famille1 qui appartient à la familles1. lorsque l'utilisateur veut créer un article il doit d'abord choisir la famille sur la liste1 et et sur la liste 2 il n'y aura que les sous familles1 appartenant à la famille qu'il a choisi, ensuite il fait son choix sur la liiste2 et sur la liste 3 il n'y aura que les sous familles2 appartenant à la sous famille1 qu'il a choisi et ainsi de suite.
Dans ma base de données j'ai une table famille, une table sous famille1, une table sous famille2, une table sous familles3 et une table articles.

1 réponse

maguidi
 
voici mon code
voici mon code avec 2 page:
XMLHttpRequest_getList.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " [ Lien ]">
<html xmlns=" [ Lien ]">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Techniques AJAX - XMLHttpRequest</title>
<script type="text/javascript" src="./script/oXHR.js"></script>
<script type="text/javascript">
<!--

function SelectCat1(oSelect)
{
var value = oSelect.options[oSelect.selectedIndex].value;
var xhr = getXMLHttpRequest();

xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
{
readData(xhr.responseXML);
document.getElementById("loader").style.display = "none";
}
else if (xhr.readyState < 4)
{
document.getElementById("loader").style.display = "inline";
}
};

xhr.open("POST", "XMLHttpRequest_getListData.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("ChoixFam=" + value);
}

function readData(oData)
{
var nodes = oData.getElementsByTagName("item");
var oSelect = document.getElementById("OptionCat1");
var oOption, oInner;

oSelect.innerHTML = "";
for (var i=0, c=nodes.length; i<c; i++)
{
oOption = document.createElement("option");
oInner = document.createTextNode(nodes[i].getAttribute("name"));
oOption.value = nodes[i].getAttribute("id");

oOption.appendChild(oInner);
oSelect.appendChild(oOption);
}
}

//-->
</script>
</head>

<body>
<fieldset>
<legend></legend>
<select id="famille" onchange="SelectCat1(this);">
<option value="none">Selection</option>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("bdmagasin");

$select_famille = mysql_query("SELECT KFamilles, Categories FROM Familles");
while ($res_famille = mysql_fetch_assoc($select_famille)) {
echo "\t\t\t\t<option value=\"" . $res_famille["KFamilles"] . "\">" . $res_famille["Categories"] . "</option>\n";
}
?>
</select> <br> <br>
<select id="OptionCat1" > <option value='-1'>Selection</option></select> <br> <br>
</p>

</fieldset>
</body>
</html>

la deuxième page: XMLHttpRequest_getListData.php
<?php

header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";?> <?php
echo "<list>";

$ChoixFam = (isset($_POST["ChoixFam"])) ? htmlentities($_POST["ChoixFam"]) : NULL;
echo $ChoixFam;
if ($ChoixFam)
{
mysql_connect("localhost", "root", "");
mysql_select_db("bdmagasin");

$select_cat1 = mysql_query("SELECT KSCategories1, SCategories1 FROM scategories1 WHERE FKFamilles = '".$ChoixFam."'");

while ($res_cat1 = mysql_fetch_assoc($select_cat1)) {
echo "<item id=\"" . $res_cat1["KSCategories1"] . "\" name=\"" . $res_cat1["SCategories1"] . "\" />";
}
}
}
echo "</list>";

?>
ça marche avec les deux première liste mais j sais pas comment faire pour le reste j'ai essayé de refaire la même chose mais rien
0