Page 1 sur 1

probleme de liste déroulante dynamique

Posté : 29 mai 2007, 23:11
par Invité
voila, mon problème, c'est que je suis en train de chercher une solution pour créer deux listes liées.
J'ai trouvé dans un site, un code complet, mais quand je l'ai testé, je reçois la deuxième liste sans libéllé!! je vois le nombre de ligne correcte mais contient des traits (-----------) !!!

je vous présente le code, et j'espere que vous trouvez où se situ le problème!!!

Code : Tout sélectionner

<?php $hote="localhost"; $user="root"; $pass=""; $Base="demo_lst"; @mysql_connect($hote, $user, $pass); ?> <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 $zlRubrique=$_POST['zlRubrique']; // Génération des Items par Rubriques $sql = "SELECT code FROM demo_rubrique ORDER BY code"; $resultat = mysql_db_query($Base, $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($Base, $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($Base, $sql); echo "<FORM METHOD=POST NAME='frmDemo1'>"; echo "<BR>&nbsp;<B>Rubriques</B>&nbsp;"; echo "&nbsp;<SELECT NAME='zlRubrique' onChange='ModifierListe(-1)'>\n"; 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>&nbsp;\n"; // ---------------------------------------------------------------------------- // Liste Items // ---------------------------------------------------------------------------- echo "&nbsp;<B>Items</B>&nbsp;"; echo "&nbsp;<SELECT NAME='zlItem'>\n"; for ($cpt = 0; $cpt < $max_lignes; $cpt++) echo "<OPTION>".ereg_replace(".", "--", $option_max)."</OPTION>\n"; echo "</SELECT>&nbsp;\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($Base, $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($Base, $sql); $enr = @mysql_fetch_array($resultat); echo "Item = $zlItem [$enr[0]]<BR>\n"; } ?>

Posté : 29 mai 2007, 23:23
par Cyrano
Le premier problème, c'est que tu pourrais éventuellement commencer par un "Bonsoir", voire même un "S'il vous plaît", ça mord pas.

Ensuite, le problème dans ton code, je sais pas, mais la solution est sûrement ICI

Posté : 29 mai 2007, 23:34
par Invité
je suis très désolé, cher ami, je te jure que j'allais mettre un remerciment a la fin, mais j'ai précipité, et je m'excuse de nouveau

Posté : 29 mai 2007, 23:51
par Invité
vous ne pouvez pas voir l'erreur dans mon code, svp?

Posté : 29 mai 2007, 23:54
par mere-teresa
je reçois la deuxième liste sans libéllé!! je vois le nombre de ligne correcte mais contient des traits (-----------) !!!
Attention, à quel endroit de ton code est récupéré la valeur qui devrait être à la place de ces traits ? Pourquoi y a-t-il ces traits à la place ? Que donne le code source HTML ?

Posté : 30 mai 2007, 00:12
par Invité
excuse moi je ne comprends plus ce vous voulez dire!! mais tout le code je l'ai présenté en haut!!

Posté : 30 mai 2007, 00:23
par mere-teresa
Je ne lis pas le code, j'ai les yeux trop fatigués. Mais je veux bien t'aider à réfléchir.

Posté : 30 mai 2007, 00:25
par Invité
je ne veux pas vous géner, pouvez vous le voir demain?