Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher si cliqué.

    31 mars 2009 à 16:13:21

    Bonjour à tous, l'univers d'ajax et javascript est assez sombre pour moi, je cherche à faire quelque que je vais vous expliquer, et je ne sais pas trop quel tutoriel présent sur ce site m'aidera à faire ceci. C'est très simple, je suis certain que ça peut se faire grâce à ajax ou javascript, dans le cas contraire, vous me le direz.

    Disons le code suivant, très théoriquement.

    <a href="">CLIQUE MOI DESSUS</a>
    
    Ici un code du style
    
    IF (CLIQUER)
    {
    BLA BLA BLA
    INFORMATION TRUC BIDULE
    BLABLABLA
    }
    


    Voilà, je pense vous avez compris, je souhaite que quand on clique sur le lien cela affiche quelque chose en particulier, en l'occurrence ici se sera une variable en php contenant du code html générer via un script. Quand on reclic cela s'enlève de nouveau.

    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      31 mars 2009 à 16:19:03

      un onclick="ta_fonction()" dans ton <a>...
      et ensuite une fonction
      var clique=false;
      function ta_fonction(){
      if(!clique){
      clique=true;
      /*autres instructions*/
      }
      else{
      clique=false;
      }
      }
      

      EDIT:petit oubli :)
      Ouala ! :lol:
      +
      Birdy
      • Partager sur Facebook
      • Partager sur Twitter
        31 mars 2009 à 16:27:51

        Merci beaucoup, voila ce que ca donne

        <a href="#" onclick="ta_fonction()">clique moi dessus	</a>
        
        <SCRIPT language="Javascript">
        
        function ta_fonction()
        {
            var clique=false;
            if(!clique){
        	
                clique=true;
        	document.write("blalbla"); 
        		
            }
            else{
        	clique=false;
            }
        } 
        		
        </SCRIPT>
        


        Sauf que mon blabla se charge a vide dans une nouvelle page blanche pendanp 1seconde et ca revient lol, désolé pas du tout habitué a ce language.
        • Partager sur Facebook
        • Partager sur Twitter
          31 mars 2009 à 16:32:00

          N'utilise pas document.write... c'est mal ! :lol:
          fais genre plutôt
          alert("cliqué");
          document.write, si la page est déjà chargée complètement, de supprime tout ton contenu et écris le nouveau...
          +
          Birdy
          • Partager sur Facebook
          • Partager sur Twitter
            31 mars 2009 à 16:34:17

            Lol c'est très amusant mais moi je veut affiché du code html, des balises, un tableau ! En fait une variable en php qui en contient et qui en contient.
            • Partager sur Facebook
            • Partager sur Twitter
              31 mars 2009 à 16:38:36

              Utilises plutôt le DOM ou le innerHTML plutôt que document.write dans ton cas... ou sinon tu caches ton contenu et tu l'affiches ensuite.
              (c'est marrant, vous avez deux sujets différents, pour le même type de problème, en même temps ^^ )
              • Partager sur Facebook
              • Partager sur Twitter
                31 mars 2009 à 16:51:24

                Comment apprendre à faire ca ?
                • Partager sur Facebook
                • Partager sur Twitter
                  31 mars 2009 à 18:22:13

                  Le plus simple est de préparer un div vide, prêt à accueillir le contenu.

                  <a href="#" onclick="ta_fonction();">clique moi dessus</a>
                  <div id="conteneur" style="display:none;"></div>
                  
                  <script type="text/javascript">
                  function ta_fonction() { // on déclare la fonction
                    conteneur = document.getElementById("conteneur"); // on récupère le div vide grâce à son id
                    if(conteneur.style.display!="none") { // Si le div est visible
                      conteneur.style.display = "none"; // on le masque...
                    } else { // sinon
                      conteneur.style.innerHTML = "YOP, du contenu, <em>divers</em> et <strong>varié...</strong>"; // On met quelque chose dedans
                      conteneur.style.display = "block"; // et on fait apparaître le div.
                    }
                  }
                  </script>
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 avril 2009 à 21:48:31

                    Merci Golmote ! C'est très bien expliqué, je pensais avoir tout compris, jusque je teste ton script qui ne marche pas :(

                    Je tente de trouver l'erreur :colere2:

                    EDIT : J'ai trouver ton erreur !

                    conteneur.style.innerHTML = "YOP, du contenu, <em>divers</em> et <strong>varié...</strong>";
                    


                    il faut enlever style
                    comme ca :

                    conteneur.innerHTML = "YOP, du contenu, <em>divers</em> et <strong>varié...</strong>";
                    


                    EDIT2 ! En fait c'est tres limité, des qu'il y'a un saut de ligne ca veut plus.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 avril 2009 à 23:08:29

                      Arf oui, désolé pour le "style" qui traînait. J'ai fait le code vite et sans vérifier :euh:

                      Peux-tu expliciter ton problème, j'ai pas tout compris... Quels sauts de lignes ?

                      Montre du code éventuellement, pour illustrer.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 avril 2009 à 8:05:17

                        Je pense à quelque chose dans le genre :
                        conteneur.innerHTML = "YOP, du contenu, <em>divers</em> et <strong>varié...</strong>";
                        conteneur.innerHTML = "un peu plus de contenu !!! hééé ça remplace l'ancien !!";
                        


                        et en fait, du coup ça marche pas... mais simplement parce qu'on remet le "=" ce qui veut dire qu'on remplace l'ancien contenu !

                        conteneur.innerHTML = "YOP, du contenu, <em>divers</em> et <strong>varié...</strong>";
                        conteneur.innerHTML += "un peu plus de contenu !!! Youpie ça le rajoute à la fin !";
                        

                        Essaie ça !
                        +
                        Birdy
                        • Partager sur Facebook
                        • Partager sur Twitter
                          2 avril 2009 à 13:23:13

                          innerHTML apporte des performances bien meilleures que le DOM ... à condition d'être utilisée à bon escient :

                          var monHashTeMeLe = "YOP, du contenu, <em>divers</em> et <strong>varié...</strong>";
                          monHashTeMeLe += "un peu plus de contenu !!! Youpie ça le rajoute à la fin !"
                          
                          conteneur.innerHTML = monHashTeMeLe;
                          


                          En effet chaque appel à innerHTML et la page est redéfinie. Autant n'appeler innerHTML qu'il seule fois ^^
                          • Partager sur Facebook
                          • Partager sur Twitter

                          Afficher si cliqué.

                          × 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