<?php
// ------------------------------------------------------------------------- //
// Il y a déjà un script avec des listes déroulantes, je m'en suis servi et //
// j'ai apporté mes améliorations : 4 listes déroulantes liées à la base de //
// données //
// ------------------------------------------------------------------------- //
// Auteur: maiis //
// Email: maiis@hotmail.com //
// Web: //
// ------------------------------------------------------------------------- //
?>
<SCRIPT LANGUAGE="JavaScript">
function ModifierListe(code_item)
{
lg = document.frmDemo1.zlItem.length;
for (i = lg - 1; i >= 0; i--)
{
document.frmDemo1.zlItem.options[i] = null;
}
code_client = document.frmDemo1.zlRubrique.selectedIndex;
<?php
$sql = "SELECT code FROM rep_client ORDER BY code";
$resultat = mysql_db_query($Base, $sql);
$max_lignes = 0;
while ($enr = mysql_fetch_array($resultat))
{
$sql = "SELECT code, famille ";
$sql .= "FROM rep_famille ";
$sql .= "WHERE code_client='".$enr[0]."'";
$sql .= "ORDER BY famille";
$resultat2 = mysql_db_query($Base, $sql);
echo " if ( document.frmDemo1.zlRubrique.options[code_client].value == ";
echo $enr[0].") {\n";
echo " document.frmDemo1.zlItem.length = ";
echo (mysql_num_rows($resultat2)).";\n";
$cpt = 0;
while ($enr2 = mysql_fetch_array($resultat2))
{
echo " document.frmDemo1.zlItem.options[".$cpt."].value = ";
echo $enr2[0].";\n";
echo " document.frmDemo1.zlItem.options[".$cpt."].text = \"";
echo $enr2[1]."\";\n";
echo " if (code_item == ".$enr2[0].") document.frmDemo1.zlItem.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";
}
?>
}
function ModifierCat(code_cat)
{
lg = document.frmDemo1.zlcat.length;
for (i = lg - 1; i >= 0; i--)
{
document.frmDemo1.zlcat.options[i] = null;
}
code_famille = document.frmDemo1.zlItem.selectedIndex;
<?php
$sql = "SELECT code FROM rep_famille ORDER BY code";
$resultat = mysql_db_query($Base, $sql);
$max_lignes = 0;
while ($enr = mysql_fetch_array($resultat))
{
$sql = "SELECT code, cat ";
$sql .= "FROM rep_cat ";
$sql .= "WHERE code_famille='".$enr[0]."'";
$sql .= "ORDER BY cat";
$resultat2 = mysql_db_query($Base, $sql);
echo " if ( document.frmDemo1.zlItem.options[code_famille].value == ";
echo $enr[0].") {\n";
echo " document.frmDemo1.zlcat.length = ";
echo (mysql_num_rows($resultat2)).";\n";
$cpt = 0;
while ($enr2 = mysql_fetch_array($resultat2))
{
echo " document.frmDemo1.zlcat.options[".$cpt."].value = ".$enr2[0].";\n";
echo " document.frmDemo1.zlcat.options[".$cpt."].text = \"";
echo $enr2[1]."\";\n";
echo " if (code_cat == ".$enr2[0].") document.frmDemo1.zlcat.options[";
echo $cpt."].selected = true;\n";
$cpt++;
if ($cpt > $max_lignes) $max_lignes = $cpt;
}
echo " }\n";
}
?>
}
function ModifierSous(code_cat)
{
lg = document.frmDemo1.zlsous.length;
for (i = lg - 1; i >= 0; i--)
{
document.frmDemo1.zlsous.options[i] = null;
}
code_cat = document.frmDemo1.zlcat.selectedIndex;
<?php
$sql = "SELECT code FROM rep_cat ORDER BY code";
$resultat = mysql_db_query($Base, $sql);
$max_lignes = 0;
while ($enr = mysql_fetch_array($resultat))
{
$sql = "SELECT code, sous ";
$sql .= "FROM rep_sous ";
$sql .= "WHERE code_cat='".$enr[0]."'";
$sql .= "ORDER BY sous";
$resultat2 = mysql_db_query($Base, $sql);
echo " if ( document.frmDemo1.zlcat.options[code_cat].value == ";
echo $enr[0].") {\n";
echo " document.frmDemo1.zlsous.length = ";
echo (mysql_num_rows($resultat2)).";\n";
$cpt = 0;
while ($enr2 = mysql_fetch_array($resultat2))
{
echo " document.frmDemo1.zlsous.options[".$cpt."].value = ".$enr2[0].";\n";
echo " document.frmDemo1.zlsous.options[".$cpt."].text = \"";
echo $enr2[1]."\";\n";
echo " if (code_cat == ".$enr2[0].") document.frmDemo1.zlsous.options[";
echo $cpt."].selected = true;\n";
$cpt++;
if ($cpt > $max_lignes) $max_lignes = $cpt;
}
echo " }\n";
}
?>
}
</SCRIPT>
<TABLE BORDER=1 BORDERCOLOR="#000000" CELLPADDING=0 CELLSPACING=0 ALIGN=CENTER>
<TR>
<TD CLASS=titre1 COLSPAN=2><BR>Recherche par rubrique<BR><BR>
</TD>
</TR>
<TR>
<TD CLASS=gauche COLSPAN=2>
</TD>
</TR>
<TR>
<TD CLASS=titre2>Répertoires
</TD>
<TD CLASS=titre2>Sélections
</TD>
</TR>
<TR>
<TD CLASS=gauche WIDTH=200>
<?php
// ----------------------------------------------------------------------------
// Liste client
// ----------------------------------------------------------------------------
$sql = "SELECT code, client FROM rep_client ORDER BY code";
$resultat = mysql_db_query($Base, $sql);
echo "<FORM METHOD=POST NAME='frmDemo1' METHOD=POST ACTION=rech_aff.php ";
echo "onSubmit=\"return verif()\">";
echo " Client";
echo "</TD><TD CLASS=gauche WIDTH=200>";
echo "<SELECT NAME='zlRubrique' WIDTH=20 onChange='ModifierListe(-1)'>";
echo "<OPTION VALUE=nul> </OPTION>";
while ($enr = mysql_fetch_array($resultat))
{
echo "<OPTION VALUE='".$enr[0]."'";
if ($zlRubrique == $enr[0]) echo " SELECTED";
echo ">".htmlspecialchars($enr[1])."</OPTION>\n";
}
echo "</SELECT>";
// ----------------------------------------------------------------------------
?>
</TD>
</TR>
<TR>
<TD CLASS=gauche WIDTH=200>
<?php
// ----------------------------------------------------------------------------
// Liste famille
// ----------------------------------------------------------------------------
echo " Famille de composants";
echo "</TD><TD CLASS=gauche WIDTH=200>";
echo "<SELECT NAME='zlItem' onChange='ModifierCat(-1)'>";
for ($cpt = 0; $cpt < $max_lignes; $cpt++)
echo "</SELECT>";
// ----------------------------------------------------------------------------
?>
</TD>
</TR>
<TR>
<TD CLASS=gauche WIDTH=200>
<?php
// ----------------------------------------------------------------------------
// Liste cat
// ----------------------------------------------------------------------------
echo " Catégorie";
echo "</TD><TD CLASS=gauche WIDTH=200>";
echo "<SELECT NAME='zlcat' onChange='ModifierSous(-1)'>";
for ($cpt = 0; $cpt < $max_lignes; $cpt++)
echo "</SELECT>";
// ----------------------------------------------------------------------------
?>
</TD>
</TR>
<TR>
<TD CLASS=gauche WIDTH=200>
<?php
// ----------------------------------------------------------------------------
// Liste sous cat
// ----------------------------------------------------------------------------
echo " Sous Catégorie";
echo "</TD><TD CLASS=gauche WIDTH=200>";
echo "<SELECT NAME='zlsous'>";
for ($cpt = 0; $cpt < $max_lignes; $cpt++)
echo "</SELECT>";
// ----------------------------------------------------------------------------
?>
</TD>
</TR>
</TABLE>