Javascript et affichage des div
Résolu
swoog42
Messages postés
1060
Date d'inscription
Statut
Membre
Dernière intervention
-
swoog42 Messages postés 1060 Date d'inscription Statut Membre Dernière intervention -
swoog42 Messages postés 1060 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Javascript et affichage des div
- Affichage double ecran - Guide
- Windows 11 affichage classique - Guide
- Telecharger javascript - Télécharger - Langages
- Problème affichage fenêtre windows 10 - Guide
- Div c++ - Télécharger - Langages
14 réponses
essayes comme ça:
<form> <select name="liste" id="liste" style="width: 500px" onChange="visibilite(this);"> <option value=-1>--choisissez --</option> <option value="1">Article 1</option> <option value="2">Article 2</option> <option value="3">Article 3</option> </select> </form> dans option c'est value qu'il faut et pas label ensuite, il faut une ligne d'option en plus sinon le onChnage ne marchera pas pour article 1 en premier choix <div style="text-align: justify; display: none;" id="divid1" class="partie"> bla bla... 1 </div> <br> <div style="text-align: justify; display: none;" id="divid2" class="partie"> bla bla... 2 </div> <br> <div style="text-align: justify; display: none;" id="divid3" class="partie"> bla bla... 3 </div> <br> <script type="text/javascript"> //il faut préciser le type de script //********************************************************* //Script qui compte le nombre de DIV de la CLASSE "partie" //Nombre stocké dans nbDiv //********************************************************* var mesDiv = document.getElementsByTagName('div'); var nbDiv = 0; for(var i=0; i < mesDiv.length; i++) { if(mesDiv[i].className == "partie") { nbDiv++; } } //*********************************************** //Fonction qui affiche la DIV sélectionnée //param : option ==> option choisie de le SELECT //*********************************************** function visibilite(option) { var i; var targetElement; var ID=document.getElementById('liste').value; //ID = option.selectedIndex ; //alert(nbDiv); targetElement = document.getElementById("divid" + ID) ; // si ID=-1 on ne fait rien (premiere ligne -- choisissez --) if(ID !=-1){ for( i = 1 ; i <= nbDiv ; i++) { document.getElementById("divid" + i).style.display = "none"; alert(i); } targetElement.style.display = "block" ; alert('end'); } } </script>
J'ai fait une série de alert() et apparemment, il n'aime pas cette ligne
var ID=document.getElementById('liste').value;
Rien ne se passe après :s
var ID=document.getElementById('liste').value;
Rien ne se passe après :s
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je l'avais oublié, en effet... mais ca ne marche pas mieux... il passe cette ligne maintenant, mais le problème est le même
quand je choisi l'article 1, il me l'affiche... Quand je choisi n'importe quel autre, il efface le 1 (normal) mais n'affiche rien à la place :s
quand je choisi l'article 1, il me l'affiche... Quand je choisi n'importe quel autre, il efface le 1 (normal) mais n'affiche rien à la place :s
oui c'est fait....
je trouve ca incompréhensible que ca marche pour la div1 et pas pour les autres...
Après une série d'alert, je me rends compte que le targetElement a bien le bon ID
je trouve ca incompréhensible que ca marche pour la div1 et pas pour les autres...
Après une série d'alert, je me rends compte que le targetElement a bien le bon ID
Voici le code complet de ma page, peut etre une coquille, mais je ne vois pas ou :s
<h1>Articles</h1><br> <center><form><select name="liste" id="liste" style="width: 500px" onChange="visibilite(this);"> <option value=-1>-- Choisissez un article --</option> <?php include "connect.php"; $retour = mysql_query("SELECT * FROM article"); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <option value="<?php echo $donnees['id']; ?>">Article <?php echo $donnees['id']; ?> : <?php echo $donnees['titre']; ?></option> <?php } // Fin de la boucle qui liste les news ?> </select></form></center> <?php include "connect.php"; $retour = mysql_query("SELECT * FROM article"); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <div style="text-align: justify; display: none;" id="divid<?php echo $donnees['id']; ?>" class="partie"> <h2><center>ARTICLE <?php echo $donnees['id']; ?> : <?php echo $donnees['titre']; ?></center></h2> <?php echo $donnees['texte']; ?> <!-- <hr width="100%" align="center" size="5" color="#D400B6"> --> <?php } // Fin de la boucle qui liste les news ?> </div> <br> <script type="text/javascript"> //********************************************************* //Script qui compte le nombre de DIV de la CLASSE "partie" //Nombre stocké dans nbDiv //********************************************************* var mesDiv = document.getElementsByTagName('div'); var nbDiv = 0; for(var i=0; i < mesDiv.length; i++) { if(mesDiv[i].className == "partie") { nbDiv++; } } //*********************************************** //Fonction qui affiche la DIV sélectionnée //param : option ==> option choisie de le SELECT //*********************************************** function visibilite(option) { var i; var targetElement; var ID=document.getElementById('liste').value; //ID = option.selectedIndex ; //alert('ID = ' + ID); targetElement = document.getElementById("divid" + ID) ; // si ID=-1 on ne fait rien (premiere ligne -- choisissez --) if(ID !=-1) { for( i = 1 ; i <= nbDiv ; i++) { document.getElementById("divid" + i).style.display = "none"; } targetElement.style.display = "block" ; targetElement.style.visibility = "visible" ; alert(targetElement.id); } } </script>
<h1>Articles</h1><br> <center><form><select name="liste" id="liste" style="width: 500px" onChange="visibilite(this);"> <option value=-1>-- Choisissez un article --</option> <?php include "connect.php"; $retour = mysql_query("SELECT * FROM article"); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <option value="<?php echo $donnees['id']; ?>">Article <?php echo $donnees['id']; ?> : <?php echo $donnees['titre']; ?></option> <?php } // Fin de la boucle qui liste les news ?> </select></form></center> <?php //include "connect.php"; //ERREUR tu ne peux pas mettre deux fois le même include de fichier, donc ça devait arreter le script php et en fait tu n'affichait que ce qui restait dans la precedente requette $retour = mysql_query("SELECT * FROM article");
je ne peux pas essayer ton script puisque je n'ai pas ta table, mais essayes comme ça:
<h1>Articles</h1><br> <center><form> <select name="liste" id="liste" style="width: 500px" onChange="visibilite(this);"> <option value=-1>-- Choisissez un article --</option> <?php include "connect.php"; $retour = mysql_query("SELECT * FROM article"); mysql_close(); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <option value="<?php echo $donnees['id']; ?>">Article <?php echo $donnees['id']; ?> : <?php echo $donnees['titre']; ?></option> <?php } // Fin de la boucle qui liste les news ?> </select></form> </center> <?php //include "connect.php"; //$retour = mysql_query("SELECT * FROM article"); mysql_data_seek($retour); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <div style="text-align: justify; display: none;" id="divid<?php echo $donnees['id']; ?>" class="partie"> <h2><center>ARTICLE <?php echo $donnees['id']; ?> : <?php echo $donnees['titre']; ?></center></h2> <?php echo $donnees['texte']; ?> <!-- <hr width="100%" align="center" size="5" color="#D400B6"> --> <?php } // Fin de la boucle qui liste les news ?> </div> <br> <script type="text/javascript"> //********************************************************* //Script qui compte le nombre de DIV de la CLASSE "partie" //Nombre stocké dans nbDiv //********************************************************* var mesDiv = document.getElementsByTagName('div'); var nbDiv = 0; for(var i=0; i < mesDiv.length; i++) { if(mesDiv[i].className == "partie") { nbDiv++; } } //*********************************************** //Fonction qui affiche la DIV sélectionnée //param : option ==> option choisie de le SELECT //*********************************************** function visibilite(option) { var i; var targetElement; var ID_select=document.getElementById('liste').value; //ID = option.selectedIndex ; //alert('ID = ' + ID); targetElement = document.getElementById("divid"+ID_select) ; // si ID_select=-1 on ne fait rien (premiere ligne -- choisissez --) if(ID_select !=-1) { for( i = 1 ; i <= nbDiv ; i++) { document.getElementById("divid" + i).style.display = "none"; } targetElement.style.display = "block" ; targetElement.style.visibility = "visible" ; alert(targetElement.id); } } </script>