sharuru
Nouveau membre
Points gagnés: 0
Messages: 2
|
 |
Liste deroulante dynamique
« le: 09 Juin 2007 à 08:02:44 » |
|
Bonjour,
Encore un sujet bien rode et assez repandu dans le web, mais malheureusement je n'ai pas trouve de solution a mon probleme.
Comme d'habitude avec les listes deroulantes dynamiques, j'ai une premiere liste dans laquelle je choisi une categorie. A la selection, une seconde liste se met a jour pour ne laisser le choix qu'aux sous categories correspondantes.
Seulement a ce moment la, mozilla ne reconnait plus dans le formulaire ma seconde liste, et donc la validation de ce formulaire ne transmet pas le choix de la sous categorie. Lorsque je fait "afficher les informations de la page" et que je ne touche rien je vois bien la seconde liste deroulante avec son nom et sa valeur, mais des que je choisis qque chose dans la categorie principale les informations concernant la seconde liste disparaissent des "informations de la page"
Voici les bouts de code incrimines :
Affichage de la seconde liste : echo '<div id="champ2" style=\'display:inline\' >'; echo '<select name="id_etape">'; $requete = "SELECT * FROM etape WHERE filtre='".$filtre."'"; $bdd = mysql_query($requete); while($d = mysql_fetch_array($bdd)){ echo '<option value="'.$d['id_etape'].'">'.$d['afficher'].'</option>'; } echo '</select> echo '</div>';
Code javascript utilise : function envoyerSecondeListe(param, page) { //trucs preparatoires pour faire la requete en fonction des navigateurs ... //définition de l'endroit d'affichage: var content2 = document.getElementById("champ2"); XhrObj.open("POST", page, true);
XhrObj.onreadystatechange = function() { if (XhrObj.readyState == 4 && XhrObj.status == 200) { tmp = XhrObj.responseText; content2.innerHTML = tmp; } }
XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); XhrObj.send(param); }
Enfin la page appellee dans la fonction javascript et qui me renvoit le code pour afficher la seconde liste de choix : //connection a la base de donnees echo '<select name="id_etape">'; $requete = "SELECT * FROM etape WHERE filtre='".$filtre_special."'"; $bdd = mysql_query($requete); while($d = mysql_fetch_array($bdd)){ echo '<option value="'.$d['id_etape'].'">'.$d['afficher'].'</option>'; } echo '</select>';
Voila, c'est un code tres simple mais qui visiblement ne marche pas. Pour preciser, mon formulaire est a l'interieur d'un immense tableau (dans le genre : <form><table>...</table></form>), je ne sais pas si ca joue mais bon... J'ai tente d'ailleurs de mettre ma liste de choix a l'exterieur du tableau et ca ne resoud pas le probleme.
Si quelqu'un a une piste, ou a besoin d'autres informations pour m'aider a resoudre ca, ce sera le bienvenu.
@+
|