Liste déroulantes liées

Fermé
maguidi - 29 avril 2009 à 11:19
 maguidi - 29 avril 2009 à 11:49
Bonjour,
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.
ça fait presque un mois que je fais des recherches, j'ai vu plein de tuto, sur ajax javascript, php mais rien, j'arrive seulement à le faire avec deux listes déroulantes mais le problèmes est que j'ai 4 listes déroulantes.
si vs voulez j vous poste mn code
A voir également:

1 réponse

oui poste ton code
0
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