Ca marche pas !!!! 
 De Hakan Altinbasak - Mercredi 21 Novembre 2001 à 22:41

J'essaye le code source avec les meme table dans une base et ca ne marche pas!!!
Help ME PLEASE !!!

  Re: Ca marche pas !!!! 
 De Olivier Ducteil - Dimanche 31 Mars 2002 à 16:27

Bonjour

Il faut se rappeler que pour qu'une variable soit utilisée il faudrait qu'elle soit déclarée, d'où le fameux :"Undefined variable: zlRubrique ".
Pour savoir si une varaible est déjà déclarée il suffit d'utiliser "isset" ce qui donne pour l'exemple suivant :
if (!isset($zlRubrique)) $zlRubrique = - 1;
instruction à mettre avant le fameux "while".
NB : "=-1" car au départ tu n'as choisi aucune des rubriques.
Heum ! je n'ai aucun mérite car cette ligne provient du même code ( 7 lignes sous "Liste Items").

Bon courage!

  Erreur d'exécution 
 De Olivier LAFANECHERE - Vendredi 29 Mars 2002 à 10:18

J'obtiens une erreur à l'exécution de la ligne :
if ($zlRubrique == $enr[0]) echo " SELECTED";
elle dit ceci :
Undefined variable: zlRubrique

je ne vois pas comment résoudre le problème.

  correction du script !!! 
 De Bob Morane - Mercredi 3 Avril 2002 à 13:58

<html>

<?php

include "include/config.php";

?>

<SCRIPT LANGUAGE="JavaScript">

function ModifierListe(code_item) {

lg = document.frmDemo1.zlItem.length;

// On vide la liste
for (i = lg - 1; i >= 0; i--) {
document.frmDemo1.zlItem.options[i] = null;
}

code_rub = document.frmDemo1.zlRubrique.selectedIndex;

<?php

// Génération des Items par Rubriques
$sql = "SELECT code FROM demo_rubrique ORDER BY code";
$resultat = mysql_db_query($dbName, $sql);

$max_lignes = 0;
$option_max = '';

while ($enr = mysql_fetch_array($resultat)) {

$sql = "SELECT code, item ";
$sql .= "FROM demo_item ";
$sql .= "WHERE code_rub='".$enr[0]."'";
$sql .= "ORDER BY item";
$resultat2 = mysql_db_query($dbName, $sql);

echo " if (document.frmDemo1.zlRubrique.options[code_rub].value == ".$enr[0].") {\n";
echo " document.frmDemo1.zlItem.length = ".(mysql_num_rows($resultat2)).";\n";
$cpt = 0;
while ($enr2 = mysql_fetch_array($resultat2)) {
echo " document.frmDemo1.zlItem.options[".$cpt."].value = ".$enr2[0].";\n";
echo " document.frmDemo1.zlItem.options[".$cpt."].text = \"".$enr2[1]."\";\n";
echo " if (code_item == ".$enr2[0].") document.frmDemo1.zlItem.options[".$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";

}

?>

}

</SCRIPT>


<?php

// ----------------------------------------------------------------------------
// Liste Rubriques
// ----------------------------------------------------------------------------
$sql = "SELECT code, rubrique FROM demo_rubrique ORDER BY rubrique";
$resultat = mysql_db_query($dbName, $sql);

echo "<FORM METHOD=POST NAME='frmDemo1'>";

echo "<BR> <B>Rubriques</B> ";
echo " <SELECT NAME='zlRubrique' onChange='ModifierListe(-1)'>\n";
if (!isset($zlRubrique)) $zlRubrique = - 1;
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> \n";

// ----------------------------------------------------------------------------
// Liste Items
// ----------------------------------------------------------------------------
echo " <B>Items</B> ";
echo " <SELECT NAME='zlItem'>\n";
for ($cpt = 0; $cpt < $max_lignes; $cpt++)
echo "<OPTION>".ereg_replace(".", "--", $option_max)."</OPTION>\n";
echo "</SELECT> \n";
if (!isset($zlItem)) $zlItem = -1;
echo "<SCRIPT LANGUAGE='JavaScript'>\n;ModifierListe(".$zlItem.");\n</SCRIPT>\n";
// ----------------------------------------------------------------------------

echo "<INPUT TYPE='submit' VALUE='Valider'>\n";

echo "</FORM>";

// ----------------------------------------------------------------------------
// Résultats des sélections
// ----------------------------------------------------------------------------
echo "Sélection :<BR>\n";

if (isset($zlRubrique) && $zlRubrique != "") {
$sql = "SELECT rubrique FROM demo_rubrique WHERE code='".$zlRubrique."'";
$resultat = @mysql_db_query($dbName, $sql);
$enr = @mysql_fetch_array($resultat);
echo "Rubrique = $zlRubrique [$enr[0]]<BR>\n";
}

if (isset($zlItem) && $zlItem != "" && $zlItem != -1) {
$sql = "SELECT item FROM demo_item WHERE code='".$zlItem."'";
$resultat = @mysql_db_query($dbName, $sql);
$enr = @mysql_fetch_array($resultat);
echo "Item = $zlItem [$enr[0]]<BR>\n";
}

?>
<body>

</body>
</html>

  et avec 3 listes déroulantes??? 
 De Nicolas Meneceur - Mardi 30 Avril 2002 à 10:03

si on a 3 listes déroulantes, comment faire pour que le contenu de 2 listes déroulantes se mettent à jour automatiquemement en fonction du résultat de la 3ème liste déroulante??
Merci pour la réponse.

  remettre les valeurs par défaut 
 De Damie Mickael - Jeudi 13 Juin 2002 à 11:53

salut,

j'arrive à mettre tranquilement le script en place mais je ne toruve pas le moment de mettre en place les valeurs par défaut.

par exemple : on peut mettre "faites votre choix" dans les deux listes...

mais qd on valide il garde les deux sélections et ne remets pas le "faites votre choix"

Merci d'avance

  marche passssss 
 De Cortty Vaugel - Vendredi 23 Août 2002 à 15:45

salut, j'ai pris ce script mais lorsque je fais des test, j'ai juste les champs vide, mais je n'ai pas d'erreur c bizarre.....
helpppppp