probleme de liste déroulante dynamique

Invité
Invité n'ayant pas de compte PHPfrance

29 mai 2007, 23:11

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"; } ?>

Mammouth du PHP | 19672 Messages

29 mai 2007, 23:23

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

29 mai 2007, 23:34

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

Invité
Invité n'ayant pas de compte PHPfrance

29 mai 2007, 23:51

vous ne pouvez pas voir l'erreur dans mon code, svp?

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

29 mai 2007, 23:54

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 ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Invité
Invité n'ayant pas de compte PHPfrance

30 mai 2007, 00:12

excuse moi je ne comprends plus ce vous voulez dire!! mais tout le code je l'ai présenté en haut!!

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

30 mai 2007, 00:23

Je ne lis pas le code, j'ai les yeux trop fatigués. Mais je veux bien t'aider à réfléchir.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Invité
Invité n'ayant pas de compte PHPfrance

30 mai 2007, 00:25

je ne veux pas vous géner, pouvez vous le voir demain?