Partage
  • Partager sur Facebook
  • Partager sur Twitter

afficher une div et masquer les autres

ça fonctionne presque ...

    26 mai 2010 à 16:08:37

    J'ai créé un fichier php qui grace à une fonction javascript permet d'afficher et masquer des div.

    Je dois cliquer sur un élément spécifique d'une des lignes de mon tableau pour que la div s'affiche et je dois recliquer dessus pour qu'elle se cache.
    Le problème c'est que j'aimerais que seule une seule div soit visible en même temps ! c'est à dire que lorsque je clique sur la ligne 6 et que la div1 est affiché je veux que la div1 se masque et la div6 s'ouvre

    Je ne sais pas si je suis très clair

    voici ma fonction js :
    function afficherDetail(A,B)
    {	var ch;
    	ch="&a="+A+"&b="+B;
    	dest="detail"+A+B;
    	document.getElementById(dest).style.display=document.getElementById(dest).style.display=="none"?"block":"none";
    	afficherPage("det.php",ch,dest);
    }
    


    mon souci est donc avec les document.getElementById. Je ne sais pas du tout comment faire.

    La solution des boutons est super mais je ne veux qu'une seule fonction et que ce soit un lien direct dans mon tableau qui affiche et masque les div.

    J'éspère que vous pourrez m'aider !

    Merci d'avance

    Tchup ! ;);)
    • Partager sur Facebook
    • Partager sur Twitter
      26 mai 2010 à 17:06:43

      Simple : crée un input hidden dans lequel tu ne mets rien initialement, et tu lui mets comme id "save_dest" et value initiale "0" par exemple. Tu modifies ensuite la fonction afficherDetail ainsi :
      function afficherDetail(A,B)
      {	var ch;
      	ch="&a="+A+"&b="+B;
      	dest="detail"+A+B;
              var ancien_dest = document.getElementById('ancien_dest').value; // je vais chercher l'id du précédent div affiché
              if (ancien_dest != "0") document.getElementById(ancien_dest).style.display = "none"; // si il y en avait un d'affiché, je le cache.
      	document.getElementById(dest).style.display=document.getElementById(dest).style.display=="none"?"block":"none";
              var nouveau_dest = (dest == ancien_dest) ? "0" : dest; // si l'utilisateur a recliqué sur le même bouton (même div), je remets 0 dans l'input ancien_dest pour éviter de recacher rien du tout la prochaine fois.
              document.getElementById('ancien_dest').value = nouveau_dest; // je mets à jour la valeur de l'input retenant l'ancien dest, le div affiché.
      	afficherPage("det.php",ch,dest);
      }
      
      • Partager sur Facebook
      • Partager sur Twitter

      afficher une div et masquer les autres

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown