<SCRIPT LANGUAGE="JavaScript">
/*Cette fonction permet d'afficher 2 listes liées l'une à l'autre par une requête Mysql
La 2ème liste est mise à jour selon ce qui a été sélectionné dans la 1ère*/
function AffListe2(code)
{
//nb d'éléments de la 2ème liste
lg = document.entreprise.nom_ent.length;
for (i = lg - 1; i >= 0; i--)
{
//au départ tous les éléments de la 2ème liste sont vides
document.entreprise.nom_ent.options[i] = null;
}
<?php
//Sélection dans la table SITES
$sql1 = "SELECT DISTINCT categorie FROM utilisateurs WHERE categorie='Partenaire' OR categorie='Adhérent'";
$resultat = mysql_query($sql1);
//initialisation des variables
$option_max= "" ;
$max_lignes = 0 ;
//Tant que la sélection dans SITES ramène des tuples
while ($enr = mysql_fetch_array($resultat))
{
//On recherche les éléments de SERVICES ayant pour "mère" un enregistrement dans SITES
$sql="SELECT login FROM utilisateurs WHERE categorie='".$enr[0]."' ORDER BY login";
//$enr[0]=CodeSite de la 1ère requête*/
$resultat2 = mysql_query($sql); //resultat correspondant au site choisi
echo " if (document.entreprise.situation.value == '";
echo $enr[0]."') {\n";
echo " document.entreprise.nom_ent.length = ";
echo (mysql_num_rows($resultat2)).";\n";
//la longueur de la liste des services=nb de lignes retournées par le select
$cpt = 0; //on met un compteur à 0
echo " document.entreprise.nom_ent.options[".$cpt."].value = '';\n";
//texte affiché dans la liste = LibelleService (enr2[1])
echo " document.entreprise.nom_ent.options[".$cpt."].text = \"Aucun\";\n";
$cpt++;
while ($enr2 = mysql_fetch_array($resultat2)) //tant qu'il y a des lignes retournées par la requête de sélection des services
{
//valeur de l'option dans la liste = CodeService (enr2[0])
echo " document.entreprise.nom_ent.options[".$cpt."].value = '";
echo $enr2[0]."';\n";
//texte affiché dans la liste = LibelleService (enr2[1])
echo " document.entreprise.nom_ent.options[".$cpt."].text = \"";
echo $enr2[1]."\";\n";
echo " if (code == '".$enr2[0]."') document.forms[1].nom_ent.options[";
echo $cpt."].selected = true;\n";
$cpt++;
if ($cpt > $max_lignes) $max_lignes = $cpt;
if (strlen($enr2[1]) > strlen($option_max)) $option_max = $enr2[1];
}
echo " }\n"; //fin du if (document.forms[0].lstsite.value == 'enr')
}//fin du while $enr
?>
}
</SCRIPT>
Partager