Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher/Cacher du texte

Sujet résolu
    31 décembre 2008 à 21:14:40

    Bonjour,

    J'aimerais que les visiteurs puissent afficher ou caché une introduction, j'aimerais que l'introduction soit affiché quand le visiteur affiche la page d'accueil et s'il le laisse comme ça ou qu'il le cache, que le texte reste comme le visiteur a choisis pour les pages d'après

    Mais le problème c'est que je ne sais pas faire ça :(

    Pouvez-vous m'apporter votre aide svp ?

    Merci d'avance :)

    Au revoir ;)
    • Partager sur Facebook
    • Partager sur Twitter
      1 janvier 2009 à 4:12:19

      Pour le cacher ou l'afficher, il suffit que tu changes le display (entre "none" et "block" (s'il s'agit d'un div))...
      Par contre pour conserver le choix, je pense qu'il te faut du PHP.... ?
      • Partager sur Facebook
      • Partager sur Twitter
        1 janvier 2009 à 9:19:48

        Il te faut créer une session en PHP pour transmettre ta variable de page en page sans que ça se voit.
        • Partager sur Facebook
        • Partager sur Twitter
          1 janvier 2009 à 13:40:53

          Merci de vos réponses, je ne sais pas du tout faire ça en php ... :(

          Pouvez-vous m'aider svp ?
          • Partager sur Facebook
          • Partager sur Twitter
            1 janvier 2009 à 15:28:44

            Pour conserver son choix, le plus simple est d'utiliser les cookies directement en javascript plutot que de s'embeter avec les sessions ;) .
            • Partager sur Facebook
            • Partager sur Twitter
              1 janvier 2009 à 16:16:15

              oui mais je ne sais pas coder en javascript :(

              Pouvez-vous m'aider svp ?
              • Partager sur Facebook
              • Partager sur Twitter
                1 janvier 2009 à 17:42:08

                Citation : Wadol

                Bonjour,

                J'aimerais que les visiteurs puissent afficher ou caché une introduction, j'aimerais que l'introduction soit affiché quand le visiteur affiche la page d'accueil et s'il le laisse comme ça ou qu'il le cache, que le texte reste comme le visiteur a choisis pour les pages d'après

                Mais le problème c'est que je ne sais pas faire ça :(

                Pouvez-vous m'apporter votre aide svp ?

                Merci d'avance :)

                Au revoir ;)



                Salut Wadol,
                Tu peux regarder la librairie jquery, il y en a la fonction show qui te permet de faire ce genre de chose

                voila la documentation

                concernant l'utilisation de jquery il suffit de télécharger la dernière version de jquery.js et l'importer dans ta page html.

                Pour plus d'information sur jquery, consulte le site officiel
                • Partager sur Facebook
                • Partager sur Twitter
                  1 janvier 2009 à 18:19:57

                  Citation : Pinkish

                  Citation : Wadol

                  Bonjour,

                  J'aimerais que les visiteurs puissent afficher ou caché une introduction, j'aimerais que l'introduction soit affiché quand le visiteur affiche la page d'accueil et s'il le laisse comme ça ou qu'il le cache, que le texte reste comme le visiteur a choisis pour les pages d'après

                  Mais le problème c'est que je ne sais pas faire ça :(

                  Pouvez-vous m'apporter votre aide svp ?

                  Merci d'avance :)

                  Au revoir ;)



                  Salut Wadol,
                  Tu peux regarder la librairie jquery, il y en a la fonction show qui te permet de faire ce genre de chose

                  voila la documentation

                  concernant l'utilisation de jquery il suffit de télécharger la dernière version de jquery.js et l'importer dans ta page html.

                  Pour plus d'information sur jquery, consulte le site officiel


                  Nan nan, pour la fonction show, pas besoin de jquery, un simple style.display = "none" | "block" fait l'affaire, le point plus compliqué est la sauvegarde du choix de l'utilisateur grâce aux cookies.
                  Il nous faudrait un peu de code pour qu'on puisse implémenter les cookies ;) .
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 janvier 2009 à 18:27:46

                    EDIT: faudrait pas que j'oublie de mettre le lien : ici

                    voilà de l'aide sous forme de tutoriel pour d'aider à comprendre comment faire des cookies en JavaScript.

                    sinon je pourrait te proposer une librairie plus légèrete de jquery (car il y a moins de fonction)

                    mais je vais juste te donner les fonctions qui font partie de cette librairie.

                    (Crée par moi)

                    function afficher(element, type)
                    {
                    element.style.visibility = 'visible';
                    switch(type)
                        {
                        case 1:
                        case '1':
                        case 'block':
                            element.style.display = "block";
                        break;
                        case 2:
                        case '2':
                        case 'inline':
                            element.style.display = "inline";
                        break;
                        case 3:
                        case '3':
                        case 'listItem':
                            element.style.display = "list-Item";
                        break;
                        }
                    return false;
                    }
                    
                    function cacher(element, type)
                    {
                    switch(type)
                        {
                        case 1:
                        case '1':
                        case 'none':
                            element.style.display = 'none';
                        break;
                        case 2:
                        case '2':
                        case 'hidden':
                            element.style.visibility = 'hidden';
                        break;
                        }
                    }
                    
                    //TypeAfficher = lorsqu'il s'affichera, comment doit-il s'afficher
                    //TypeCacher = lorsqu'il se cachera, comment doit-il se cacher
                    function toggleAffichage(element, typeAfficher, typeCacher)
                    {
                    if(element.style.display == 'none' || element.style.visibility == 'hidden' || (element.style.display == '' && element.style.visibility == ''))
                        return afficher(element, typeAfficher);
                    else
                        return cacher(element, typeCacher);
                    }
                    

                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 janvier 2009 à 18:32:19

                      Tous les codes ci-dessous sont tirés de http://www.actulab.com

                      Code pour écrire un cookie :
                      function EcrireCookie(nom, valeur)
                      {
                      var argv=EcrireCookie.arguments;
                      var argc=EcrireCookie.arguments.length;
                      var expires=(argc > 2) ? argv[2] : null;
                      var path=(argc > 3) ? argv[3] : null;
                      var domain=(argc > 4) ? argv[4] : null;
                      var secure=(argc > 5) ? argv[5] : false;
                      document.cookie=nom+"="+escape(valeur)+
                      ((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
                      ((path==null) ? "" : ("; path="+path))+
                      ((domain==null) ? "" : ("; domain="+domain))+
                      ((secure==true) ? "; secure" : "");
                      }
                      


                      Pour ton problème, tu pourras donc créer un cookie du type :
                      EcrireCookie("dejavenu", "oui");
                      

                      (Tu peux en plus préciser un troisième paramètre qui définirait la durée de validité du cookie... Par défaut, il est valide jusqu'à la fin de la session du navigateur. Je pense que c'est suffisant dans ton cas).

                      Fonction pour lire un cookie :
                      function getCookieVal(offset)
                      {
                      var endstr=document.cookie.indexOf (";", offset);
                      if (endstr==-1) endstr=document.cookie.length;
                      return unescape(document.cookie.substring(offset, endstr));
                      }
                      function LireCookie(nom)
                      {
                      var arg=nom+"=";
                      var alen=arg.length;
                      var clen=document.cookie.length;
                      var i=0;
                      while (i<clen)
                      {
                      var j=i+alen;
                      if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
                      i=document.cookie.indexOf(" ",i)+1;
                      if (i==0) break;
                      
                      }
                      return null;
                      }
                      


                      Dans ton cas, tu pourras donc tester si l'utilisateur est déjà venu ainsi :
                      dejavenu = LireCookie("dejavenu");
                      

                      Si le cookie existe, dejavenu prendra la valeur "oui". Sinon, dejavenu prendra la valeur null.


                      Et pour finir un exemple entier de gestion des cookies (un cas de compteur de visites) : http://www.actulab.com/exemple-de-cookies.php

                      J'ai rien testé... donc dis-nous si ça marche. :)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        1 janvier 2009 à 19:09:42

                        Voila le code :
                        function EcrireCookie(nom, valeur){
                        	var argv=EcrireCookie.arguments;
                        	var argc=EcrireCookie.arguments.length;
                        	var expires=(argc > 2) ? argv[2] : null;
                        	var path=(argc > 3) ? argv[3] : null;
                        	var domain=(argc > 4) ? argv[4] : null;
                        	var secure=(argc > 5) ? argv[5] : false;
                        	document.cookie=nom+"="+escape(valeur)+
                        	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
                        	((path==null) ? "" : ("; path="+path))+
                        	((domain==null) ? "" : ("; domain="+domain))+
                        	((secure==true) ? "; secure" : "");
                        }
                        function getCookieVal(offset){
                        	var endstr=document.cookie.indexOf (";", offset);
                        	if (endstr==-1) endstr=document.cookie.length;
                        	return unescape(document.cookie.substring(offset, endstr));
                        }
                        function LireCookie(nom){
                        	var arg=nom+"=";
                        	var alen=arg.length;
                        	var clen=document.cookie.length;
                        	var i=0;
                        	while (i<clen){
                        		var j=i+alen;
                        		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
                        		i=document.cookie.indexOf(" ",i)+1;
                        		if (i==0) break;
                        	}
                        	return null;
                        }
                        
                        
                        
                        
                        function Init() {
                        	var aNodes = getElementsByClassName("hidden").concat(getElementsByClassName("shown"));
                        	for(var i=0, item; item = aNodes[i]; i++) {
                        		item.show = function() {
                        			this.style.display = "block";
                        		};
                        		item.hide = function() {
                        			this.style.display = "none";
                        		};
                        		
                        		if(/save-value/g.test(item.className)){
                        			item.change = function() {
                        				if(this.style.display == "block") {
                        					this.hide();
                        					EcrireCookie("SH"+this.id, "hidden");
                        				}else {
                        					this.show();
                        					EcrireCookie("SH"+this.id, "shown");
                        				}
                        			};
                        		}
                        		else {
                        			item.change = function() {
                        				if(this.style.display == "block") {
                        					this.hide();
                        				}else {
                        					this.show();
                        				}
                        			};
                        		}
                        		
                        		var value = (typeof LireCookie("SH"+item.id) == "string")? (LireCookie("SH"+item.id) : (/hidden/g.test(item.className))? "hidden") : "shown";
                        		if(value == "hidden"){
                        			item.hide();
                        		} else if(value == "shown"){
                        			item.show();
                        		}
                        	}
                        }
                        
                        //Pour rajouter un événement
                        function addEvent(obj_, event_, fct_) {
                        	if(obj_.addEventListener) {
                        		obj_.addEventListener(event_, fct_, true);	
                        	}
                        	else if(obj_.attachEvent && !(/this\./g.test(fct_.valueOf()))) {
                        		obj_.attachEvent('on' + event_, fct_);
                        	}
                        	else {
                        		obj_['on' + event_] = fct_;
                        	}
                        }
                        
                        //Fonction pour récuperer les éléments par leur classe
                        function getElementsByClassName(className, tag, elm){
                        	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
                        	var tag = tag || "*";
                        	var elm = elm || document;
                        	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
                        	var returnElements = [];
                        	var current;
                        	var length = elements.length;
                        	for(var i=0; i<length; i++){
                        		current = elements[i];
                        		if(testClass.test(current.className)){
                        			returnElements.push(current);
                        		}
                        	}
                        	return returnElements;
                        }
                        addEvent(window, "load", Init);
                        

                        Voila comment s'en servir : tu met une classe shown ou hidden (suivant l'affichage par défaut) au élément qui vont s'afficher/cacher, et la classe save-value aux élément dont tu veux sauvegarder leur valeur (il faut qu'ils possèdent une id).
                        Et après, tu as juste à faire element.change() pour afficher/cacher.
                        Voila, pose des questions si ya des points que tu ne comprends pas ;) .
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 janvier 2009 à 19:14:01

                          J'crois que t'as fait une faute de frappe ligne 67. (HS au lieu de SH) ;)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            1 janvier 2009 à 19:24:33

                            Vi, je cherchais une initiale pour les cookies, j'ai rien trouvé d'autres que ShowHide, sauf que bien sur, j'inverse les deux >_<
                            • Partager sur Facebook
                            • Partager sur Twitter
                              1 janvier 2009 à 20:03:01

                              Et vous trouvez ça plus simple qu'une session PHP :lol: ?
                              • Partager sur Facebook
                              • Partager sur Twitter
                                1 janvier 2009 à 20:09:29

                                Citation : Geoffrey-Zéro

                                Et vous trouvez ça plus simple qu'une session PHP :lol: ?


                                Non mais la c'est un code super flexible et facile à utiliser, tu peux cacher/afficher plusieurs éléments facilement, ca sauvegarde automatiquement, etc...
                                Et pis, ca évite de devoir passer par AJAX et de faire travailler le serveur comme avec les sessions PHP ;) .
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  1 janvier 2009 à 20:16:45

                                  Ok, par contre je ne voyais pas ça en AJAX (suffit de mettre un formulaire avec un input type="hidden" et un input type="image" pour que ce soit plus joli) et je ne sais pas si le temps de latence dû au PHP est si long.

                                  Peut-être faire ce choix quand on a du PHP dans sa page, ce qui n'est effectivement pas le cas ici...
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    1 janvier 2009 à 20:20:09

                                    Non mais pour ce qu'il veut faire, tu es obligé de passer par AJAX. Tu vas pas faire un formulaire juste pour demander à l'utilisateur s'il préfère le voir ou non. Surtout s'il veut le changer rapidement...
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      1 janvier 2009 à 20:34:08

                                      Merci pour toutes vos réponses

                                      Le code de Timot semble me convenir le mieu

                                      Citation

                                      Voila le code :

                                      function EcrireCookie(nom, valeur){
                                      	var argv=EcrireCookie.arguments;
                                      	var argc=EcrireCookie.arguments.length;
                                      	var expires=(argc > 2) ? argv[2] : null;
                                      	var path=(argc > 3) ? argv[3] : null;
                                      	var domain=(argc > 4) ? argv[4] : null;
                                      	var secure=(argc > 5) ? argv[5] : false;
                                      	document.cookie=nom+"="+escape(valeur)+
                                      	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
                                      	((path==null) ? "" : ("; path="+path))+
                                      	((domain==null) ? "" : ("; domain="+domain))+
                                      	((secure==true) ? "; secure" : "");
                                      }
                                      function getCookieVal(offset){
                                      	var endstr=document.cookie.indexOf (";", offset);
                                      	if (endstr==-1) endstr=document.cookie.length;
                                      	return unescape(document.cookie.substring(offset, endstr));
                                      }
                                      function LireCookie(nom){
                                      	var arg=nom+"=";
                                      	var alen=arg.length;
                                      	var clen=document.cookie.length;
                                      	var i=0;
                                      	while (i<clen){
                                      		var j=i+alen;
                                      		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
                                      		i=document.cookie.indexOf(" ",i)+1;
                                      		if (i==0) break;
                                      	}
                                      	return null;
                                      }
                                      
                                      
                                      
                                      
                                      function Init() {
                                      	var aNodes = getElementsByClassName("hidden").concat(getElementsByClassName("shown"));
                                      	for(var i=0, item; item = aNodes[i]; i++) {
                                      		item.show = function() {
                                      			this.style.display = "block";
                                      		};
                                      		item.hide = function() {
                                      			this.style.display = "none";
                                      		};
                                      		
                                      		if(/save-value/g.test(item.className)){
                                      			item.change = function() {
                                      				if(this.style.display == "block") {
                                      					this.hide();
                                      					EcrireCookie("SH"+this.id, "hidden");
                                      				}else {
                                      					this.show();
                                      					EcrireCookie("SH"+this.id, "shown");
                                      				}
                                      			};
                                      		}
                                      		else {
                                      			item.change = function() {
                                      				if(this.style.display == "block") {
                                      					this.hide();
                                      				}else {
                                      					this.show();
                                      				}
                                      			};
                                      		}
                                      		
                                      		var value = (typeof LireCookie("SH"+item.id) == "string")? (LireCookie("SH"+item.id) : (/hidden/g.test(item.className))? "hidden") : "shown";
                                      		if(value == "hidden"){
                                      			item.hide();
                                      		} else if(value == "shown"){
                                      			item.show();
                                      		}
                                      	}
                                      }
                                      
                                      //Pour rajouter un événement
                                      function addEvent(obj_, event_, fct_) {
                                      	if(obj_.addEventListener) {
                                      		obj_.addEventListener(event_, fct_, true);	
                                      	}
                                      	else if(obj_.attachEvent && !(/this\./g.test(fct_.valueOf()))) {
                                      		obj_.attachEvent('on' + event_, fct_);
                                      	}
                                      	else {
                                      		obj_['on' + event_] = fct_;
                                      	}
                                      }
                                      
                                      //Fonction pour récuperer les éléments par leur classe
                                      function getElementsByClassName(className, tag, elm){
                                      	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
                                      	var tag = tag || "*";
                                      	var elm = elm || document;
                                      	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
                                      	var returnElements = [];
                                      	var current;
                                      	var length = elements.length;
                                      	for(var i=0; i<length; i++){
                                      		current = elements[i];
                                      		if(testClass.test(current.className)){
                                      			returnElements.push(current);
                                      		}
                                      	}
                                      	return returnElements;
                                      }
                                      addEvent(window, "load", Init);
                                      


                                      Voila comment s'en servir : tu met une classe shown ou hidden (suivant l'affichage par défaut) au élément qui vont s'afficher/cacher, et la classe save-value aux élément dont tu veux sauvegarder leur valeur (il faut qu'ils possèdent une id).
                                      Et après, tu as juste à faire element.change() pour afficher/cacher.
                                      Voila, pose des questions si ya des points que tu ne comprends pas ;) .



                                      Je n'ai pas compris la partie ou tu parles de la partie xhtml/css pouvez-vous m'aider svp ? merci :)

                                      J'ai esseiller de faire ça :

                                      <?php include("http://isahus.free.fr/include/debut4.php"); ?>
                                      <?php
                                      $title = "Classe 1 EVS - Agenda";
                                      ?>
                                      <script type="text/javascript">
                                      function EcrireCookie(nom, valeur){
                                      	var argv=EcrireCookie.arguments;
                                      	var argc=EcrireCookie.arguments.length;
                                      	var expires=(argc > 2) ? argv[2] : null;
                                      	var path=(argc > 3) ? argv[3] : null;
                                      	var domain=(argc > 4) ? argv[4] : null;
                                      	var secure=(argc > 5) ? argv[5] : false;
                                      	document.cookie=nom+"="+escape(valeur)+
                                      	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
                                      	((path==null) ? "" : ("; path="+path))+
                                      	((domain==null) ? "" : ("; domain="+domain))+
                                      	((secure==true) ? "; secure" : "");
                                      }
                                      function getCookieVal(offset){
                                      	var endstr=document.cookie.indexOf (";", offset);
                                      	if (endstr==-1) endstr=document.cookie.length;
                                      	return unescape(document.cookie.substring(offset, endstr));
                                      }
                                      function LireCookie(nom){
                                      	var arg=nom+"=";
                                      	var alen=arg.length;
                                      	var clen=document.cookie.length;
                                      	var i=0;
                                      	while (i<clen){
                                      		var j=i+alen;
                                      		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
                                      		i=document.cookie.indexOf(" ",i)+1;
                                      		if (i==0) break;
                                      	}
                                      	return null;
                                      }
                                      
                                      
                                      
                                      
                                      function Init() {
                                      	var aNodes = getElementsByClassName("hidden").concat(getElementsByClassName("shown"));
                                      	for(var i=0, item; item = aNodes[i]; i++) {
                                      		item.show = function() {
                                      			this.style.display = "block";
                                      		};
                                      		item.hide = function() {
                                      			this.style.display = "none";
                                      		};
                                      		
                                      		if(/save-value/g.test(item.className)){
                                      			item.change = function() {
                                      				if(this.style.display == "block") {
                                      					this.hide();
                                      					EcrireCookie("SH"+this.id, "hidden");
                                      				}else {
                                      					this.show();
                                      					EcrireCookie("SH"+this.id, "shown");
                                      				}
                                      			};
                                      		}
                                      		else {
                                      			item.change = function() {
                                      				if(this.style.display == "block") {
                                      					this.hide();
                                      				}else {
                                      					this.show();
                                      				}
                                      			};
                                      		}
                                      		
                                      		var value = (typeof LireCookie("SH"+item.id) == "string")? (LireCookie("SH"+item.id) : (/hidden/g.test(item.className))? "hidden") : "shown";
                                      		if(value == "hidden"){
                                      			item.hide();
                                      		} else if(value == "shown"){
                                      			item.show();
                                      		}
                                      	}
                                      }
                                      
                                      //Pour rajouter un événement
                                      function addEvent(obj_, event_, fct_) {
                                      	if(obj_.addEventListener) {
                                      		obj_.addEventListener(event_, fct_, true);	
                                      	}
                                      	else if(obj_.attachEvent && !(/this\./g.test(fct_.valueOf()))) {
                                      		obj_.attachEvent('on' + event_, fct_);
                                      	}
                                      	else {
                                      		obj_['on' + event_] = fct_;
                                      	}
                                      }
                                      
                                      //Fonction pour récuperer les éléments par leur classe
                                      function getElementsByClassName(className, tag, elm){
                                      	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
                                      	var tag = tag || "*";
                                      	var elm = elm || document;
                                      	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
                                      	var returnElements = [];
                                      	var current;
                                      	var length = elements.length;
                                      	for(var i=0; i<length; i++){
                                      		current = elements[i];
                                      		if(testClass.test(current.className)){
                                      			returnElements.push(current);
                                      		}
                                      	}
                                      	return returnElements;
                                      }
                                      addEvent(window, "load", Init);
                                      
                                      </script>
                                      <title>Site de Mme HUSSON - <?php echo $title; ?></title>
                                      <div class="shown" class="save-value">
                                                  Texte à masquer, afficher
                                      </div>
                                      <a href="" onclick="element.change()">clique moi</a> 
                                      
                                      <?php include("http://isahus.free.fr/include/fin.php"); ?>
                                      
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        1 janvier 2009 à 20:57:29

                                        Citation : Timot

                                        Non mais pour ce qu'il veut faire, tu es obligé de passer par AJAX. Tu vas pas faire un formulaire juste pour demander à l'utilisateur s'il préfère le voir ou non. Surtout s'il veut le changer rapidement...



                                        Bien-sûr que si, ce formulaire se limite à un bouton submit ! C'est comme si on cliquait simplement sur un lien, et puis tu peux lui donner la gueule d'une croix à ton bouton et le positionner sur un coin de l'anime, là t'as tout bon !

                                        Mais bon, j'ai compris, je vais me rabiller avec mon PHP, c'est ça :(
                                        :p
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          1 janvier 2009 à 21:22:47

                                          Non mai PHP c'est bien, mais pas dans ce cas la, c'est pas intéractif, ca demande une recharge de la page.
                                          Si tu veux faire une page dynamique, tu vas pas demander à l'utilisateur de faire un formulaire pour chaque machin sur la page que tu veux changer !
                                          C'est pour ça qu'ici, les cookies sont plus appropriés ;) .
                                          Pour le xHTML :
                                          <div class="shown save-value" id="test">
                                                      Texte à masquer, afficher
                                          </div>
                                          <a href="#" onclick="document.getElementById('test').change()">Clique moi</a>
                                          

                                          Pour mettre 2 classes en xHTML, on les sépare d'un espace.
                                          Il faut mettre une idée sur le block qui s'affiche/cache pour pouvoir sauvegarder son affichage et pour pouvoir plus facilement l'atteindre pour changer son affichage.
                                          Donc pour changer son affichage, il faut aire document.getElementById("l'id du div").change().
                                          Poste si tu as encore des questions ;) .
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            1 janvier 2009 à 23:03:32

                                            J'ai corrigé une petite erreur de parenthésage.

                                            function EcrireCookie(nom, valeur){
                                            	var argv=EcrireCookie.arguments;
                                            	var argc=EcrireCookie.arguments.length;
                                            	var expires=(argc > 2) ? argv[2] : null;
                                            	var path=(argc > 3) ? argv[3] : null;
                                            	var domain=(argc > 4) ? argv[4] : null;
                                            	var secure=(argc > 5) ? argv[5] : false;
                                            	document.cookie=nom+"="+escape(valeur)+
                                            	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
                                            	((path==null) ? "" : ("; path="+path))+
                                            	((domain==null) ? "" : ("; domain="+domain))+
                                            	((secure==true) ? "; secure" : "");
                                            }
                                            function getCookieVal(offset){
                                            	var endstr=document.cookie.indexOf (";", offset);
                                            	if (endstr==-1) endstr=document.cookie.length;
                                            	return unescape(document.cookie.substring(offset, endstr));
                                            }
                                            function LireCookie(nom){
                                            	var arg=nom+"=";
                                            	var alen=arg.length;
                                            	var clen=document.cookie.length;
                                            	var i=0;
                                            	while (i<clen){
                                            		var j=i+alen;
                                            		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
                                            		i=document.cookie.indexOf(" ",i)+1;
                                            		if (i==0) break;
                                            	}
                                            	return null;
                                            }
                                            
                                            
                                            
                                            
                                            function Init() {
                                            	var aNodes = getElementsByClassName("hidden").concat(getElementsByClassName("shown"));
                                            	for(var i=0, item; item = aNodes[i]; i++) {
                                            		item.show = function() {
                                            			this.style.display = "block";
                                            		};
                                            		item.hide = function() {
                                            			this.style.display = "none";
                                            		};
                                            		
                                            		if(/save-value/g.test(item.className)){
                                            			item.change = function() {
                                            				if(this.style.display == "block") {
                                            					this.hide();
                                            					EcrireCookie("SH"+this.id, "hidden");
                                            				}else {
                                            					this.show();
                                            					EcrireCookie("SH"+this.id, "shown");
                                            				}
                                            			};
                                            		}
                                            		else {
                                            			item.change = function() {
                                            				if(this.style.display == "block") {
                                            					this.hide();
                                            				}else {
                                            					this.show();
                                            				}
                                            			};
                                            		}
                                            		
                                            		var value = (typeof LireCookie("SH"+item.id) == "string")? (LireCookie("SH"+item.id)) : ((/hidden/g.test(item.className))? "hidden" : "shown");
                                            		if(value == "hidden"){
                                            			item.hide();
                                            		} else if(value == "shown"){
                                            			item.show();
                                            		}
                                            	}
                                            }
                                            
                                            //Pour rajouter un événement
                                            function addEvent(obj_, event_, fct_) {
                                            	if(obj_.addEventListener) {
                                            		obj_.addEventListener(event_, fct_, true);	
                                            	}
                                            	else if(obj_.attachEvent && !(/this\./g.test(fct_.valueOf()))) {
                                            		obj_.attachEvent('on' + event_, fct_);
                                            	}
                                            	else {
                                            		obj_['on' + event_] = fct_;
                                            	}
                                            }
                                            
                                            //Fonction pour récuperer les éléments par leur classe
                                            function getElementsByClassName(className, tag, elm){
                                            	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
                                            	var tag = tag || "*";
                                            	var elm = elm || document;
                                            	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
                                            	var returnElements = [];
                                            	var current;
                                            	var length = elements.length;
                                            	for(var i=0; i<length; i++){
                                            		current = elements[i];
                                            		if(testClass.test(current.className)){
                                            			returnElements.push(current);
                                            		}
                                            	}
                                            	return returnElements;
                                            }
                                            addEvent(window, "load", Init);
                                            


                                            Timot, pourrais-tu m'expliquer le principe de la boucle for que tu as utilisée (ligne 38) ?
                                            item, c'est un nom de variable ? ou JS le connaît ???
                                            Et comment est définie la condition d'arrêt de la boucle ?
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              2 janvier 2009 à 11:43:18

                                              Bonjour merci de vos réponses, ça marche, encore une dernière question comment faire pour que quand le texte est caché le lien se transforme en afficher le texte et vice-versa, j'aimerais que le code soit intégré au code de Timot svp Merci d'avance ;)
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                4 janvier 2009 à 1:45:19

                                                <head>
                                                <script type="text/javascript">
                                                function EcrireCookie(nom, valeur){
                                                	var argv=EcrireCookie.arguments;
                                                	var argc=EcrireCookie.arguments.length;
                                                	var expires=(argc > 2) ? argv[2] : null;
                                                	var path=(argc > 3) ? argv[3] : null;
                                                	var domain=(argc > 4) ? argv[4] : null;
                                                	var secure=(argc > 5) ? argv[5] : false;
                                                	document.cookie=nom+"="+escape(valeur)+
                                                	((expires==null) ? "" : ("; expires="+expires.toGMTString()))+
                                                	((path==null) ? "" : ("; path="+path))+
                                                	((domain==null) ? "" : ("; domain="+domain))+
                                                	((secure==true) ? "; secure" : "");
                                                }
                                                function getCookieVal(offset){
                                                	var endstr=document.cookie.indexOf (";", offset);
                                                	if (endstr==-1) endstr=document.cookie.length;
                                                	return unescape(document.cookie.substring(offset, endstr));
                                                }
                                                function LireCookie(nom){
                                                	var arg=nom+"=";
                                                	var alen=arg.length;
                                                	var clen=document.cookie.length;
                                                	var i=0;
                                                	while (i<clen){
                                                		var j=i+alen;
                                                		if (document.cookie.substring(i, j)==arg) return getCookieVal(j);
                                                		i=document.cookie.indexOf(" ",i)+1;
                                                		if (i==0) break;
                                                	}
                                                	return null;
                                                }
                                                
                                                
                                                
                                                
                                                function Init() {
                                                	var lien = document.getElementById("le_lien");
                                                	var aNodes = getElementsByClassName("hidden").concat(getElementsByClassName("shown"));
                                                	for(var i=0, item; item = aNodes[i]; i++) {
                                                		item.show = function() {
                                                			this.style.display = "block";
                                                			lien.innerHTML = "Cacher le texte";
                                                		};
                                                		item.hide = function() {
                                                			this.style.display = "none";
                                                			lien.innerHTML = "Afficher le texte";
                                                		};
                                                		
                                                		if(/save-value/g.test(item.className)){
                                                			item.change = function() {
                                                				if(this.style.display == "block") {
                                                					this.hide();
                                                					EcrireCookie("SH"+this.id, "hidden");
                                                				}else {
                                                					this.show();
                                                					EcrireCookie("SH"+this.id, "shown");
                                                				}
                                                			};
                                                		}
                                                		else {
                                                			item.change = function() {
                                                				if(this.style.display == "block") {
                                                					this.hide();
                                                				}else {
                                                					this.show();
                                                				}
                                                			};
                                                		}
                                                		
                                                		var value = (typeof LireCookie("SH"+item.id) == "string")? (LireCookie("SH"+item.id)) : ((/hidden/g.test(item.className))? "hidden" : "shown");
                                                		if(value == "hidden"){
                                                			item.hide();
                                                		} else if(value == "shown"){
                                                			item.show();
                                                		}
                                                	}
                                                }
                                                
                                                //Pour rajouter un événement
                                                function addEvent(obj_, event_, fct_) {
                                                	if(obj_.addEventListener) {
                                                		obj_.addEventListener(event_, fct_, true);	
                                                	}
                                                	else if(obj_.attachEvent && !(/this\./g.test(fct_.valueOf()))) {
                                                		obj_.attachEvent('on' + event_, fct_);
                                                	}
                                                	else {
                                                		obj_['on' + event_] = fct_;
                                                	}
                                                }
                                                
                                                //Fonction pour récuperer les éléments par leur classe
                                                function getElementsByClassName(className, tag, elm){
                                                	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
                                                	var tag = tag || "*";
                                                	var elm = elm || document;
                                                	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
                                                	var returnElements = [];
                                                	var current;
                                                	var length = elements.length;
                                                	for(var i=0; i<length; i++){
                                                		current = elements[i];
                                                		if(testClass.test(current.className)){
                                                			returnElements.push(current);
                                                		}
                                                	}
                                                	return returnElements;
                                                }
                                                addEvent(window, "load", Init);
                                                
                                                </script>
                                                </head>
                                                
                                                <body>
                                                <div class="shown save-value" id="test">
                                                            Texte à masquer, afficher
                                                </div>
                                                <a id="le_lien" href="#" onclick="document.getElementById('test').change()">Clique moi</a>
                                                
                                                </body>
                                                

                                                Voilà, les changements sont surlignés. Fais attention à l'id du lien, bien entendu. :)
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  4 janvier 2009 à 12:37:27

                                                  Super merci pour tout ! :)
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter

                                                  Afficher/Cacher du texte

                                                  × 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