IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Afficher/Masquer des lignes de tableaux


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut Afficher/Masquer des lignes de tableaux
    Hi all,

    Je suis débutant en javascript et j'ai tenté de faire un pti de soit disant "AJAX" , Donc j'ai un tableau de 10 lignes sans compter la ligne de titre, et je voudrais tout simplement Afficher ou Masquer ces lignes en cliquant sur un même liens.

    J'avais déja fait ça sur un bloc et cela fonctionnait impeccablement, mais là il s'agit de lignes donc rien ne vas plus !!

    J'ai cherché un peu sur le forum et testé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function visibilite(10){
    	var i= 1;
    	while(i <= 10){
    		var targetElement = document.getElementById("blockToHide"+i);
    		if(targetElement.style.display == "none"){
    			targetElement.style.display = "";
    			document.getElementById('linkHide').innerHTML = 'Masquer Caractéristiques';
    		}else{
    			targetElement.style.display = "none";
    			document.getElementById('linkHide').innerHTML = 'Afficher Caractéristiques';
    		}
    	}
    }
    code html :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <table border="1" cellspacing="0" cellpadding="0">
    	<tr> <!-- Lien pour afficher ou masquer -->	
                             <td colspan="2"><a href="javascript:visibilite('10');" title="Cacher les lignes " id="linkHide">Afficher Caract&eacute;ristiques</a></td>
                 </tr><!-- Lignes à afficher-->
                 <tr id="blockToHide1" style="display:none">
    		<td colspan="2">Type</td>
    		<td width="195"></td>
    	</tr>
    	<tr id="blockToHide2" style="display:none">
    		<td colspan="2">Pays</td>
    		<td width="195"></td>
    	</tr>
    	<tr id="blockToHide3" style="display:none">
    		<td colspan="2">Fin Com</td>
    		<td width="195"></td>
    	</tr>
    	<tr id="blockToHide4" style="display:none">
    		<td colspan="2">Puissance</td>
    		<td width="195"></td>
    	</tr>
    	<tr id="blockToHide5" style="display:none">
    		<td colspan="2">Cylindr&eacute;e</td>
    		<td width="195"></td>
    	</tr>
    	<tr id="blockToHide6" style="display:none">
    		<td colspan="2">Conso Mixte</td>
    		<td width="195"></td>
    	</tr>
                 <tr id="blockToHide7" style="display:none">
    		<td colspan="2">Conso Mixte</td>
    		<td width="195"></td>
    	</tr>
    	<tr id="blockToHide8" style="display:none">
    		<td colspan="2">Conso CO2</td>
    		<td width="195"></td>
    	 </tr>
    	<tr id="blockToHide9" style="display:none">
    		<td colspan="2">Pneu</td>
    		<td width="195"></td>
    	</tr>								<tr id="blockToHide10" style="display:none">
    			<td colspan="2">Prix</td>
    			<td width="195"></td>
    	</tr>
    </table>

    Là rien ne s'affiche, j'ai bien tout de masquer au départ, mais en cliquant rien n'apparait Auriez vous une idée ?

    Merci pour vos réponses !!
    " Can't take your slogans no more, no more sweet talk from the hypocrits " by Robert Nesta Marley

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par mLk92 Voir le message
    Là rien ne s'affiche, j'ai bien tout de masquer au départ, mais en cliquant rien n'apparait Auriez vous une idée ?
    Ta méthode visible est bonne (enfin, elle devrait marcher, elle est pas terrible).
    Par contre, pourquoi lui mettre un argument? Tu déclare function visibilite(10) et ça, ça doit pas être autorisé.... Vire cet argument partout (de toute façon, il ne sert à rien).

    Sinon, pour rendre ça plus propre, j'aurais utilisé un tbody pour rassembler toutes tes lignes et il ne te reste plus qu'à faire apparaitre/disparaitre ton tbody.

    Troll : Y'a rien d'Ajax là dedans

  3. #3
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut
    Citation Envoyé par denisC Voir le message
    Ta méthode visible est bonne (enfin, elle devrait marcher, elle est pas terrible).
    Que me proposes-tu ?


    Citation Envoyé par denisC Voir le message
    Sinon, pour rendre ça plus propre, j'aurais utilisé un tbody pour rassembler toutes tes lignes et il ne te reste plus qu'à faire apparaitre/disparaitre ton tbody.

    Troll : Y'a rien d'Ajax là dedans
    C'est la méthode que j'utilisait auparavant mais la configuration du tableau fait que je ne peux plus ^^, effectivement il y a deux lignes dans mon tableau (que je n'ai pas écrit dans ce code) qui ne doivent pas ce cacher, ainsi le tbody devient malheureusement obsolète

    Je ne sais pas si je peux rajouter un tr après un tbody, je vais chercher mais j'ai jamais vu !

    Je vais aussi tester le visibilite() sans argument :p
    " Can't take your slogans no more, no more sweet talk from the hypocrits " by Robert Nesta Marley

  4. #4
    Membre averti Avatar de mLk92
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 527
    Points : 305
    Points
    305
    Par défaut
    Mea Culpa, trop de questions pour pas grand chose, il me suffisait de changer de structure html

    En effet on peut faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <table>
      <thead>
         <tr> 
            <td></td>
         </tr>
      </thead>
      <tbody>
         <tr>
             <td></td>
        </tr>
      </tbody>
      <tbody>
         <tr>
             <td></td>
         </tr>
       </tbody>
    Ce que je ne savais pas !!

    Donc j'ai pris le premier tbody comme bloc à cacher et basta

    Merci quand mm !!

    Du coup j'ai ceci en javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function visibilite(thingId)
    	{
    	var targetElement;
    	targetElement = document.getElementById(thingId) ;
    	if (targetElement.style.display == "none"){
    		targetElement.style.display = "" ;
    		document.getElementById('linkHide').innerHTML='Masquer Caract&eacute;ristiques';
    	}
    	else
    	{
    		targetElement.style.display = "none" ;
    		document.getElementById('linkHide').innerHTML='Afficher Carat&eacute;ristiques';
    	}
    }
    Ciao !!
    " Can't take your slogans no more, no more sweet talk from the hypocrits " by Robert Nesta Marley

  5. #5
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par mLk92 Voir le message
    Que me proposes-tu ?
    Le tbody

    Citation Envoyé par mLk92 Voir le message
    Je ne sais pas si je peux rajouter un tr après un tbody, je vais chercher mais j'ai jamais vu !
    Tu peux mettre autant de tbody que tu veux dans ton tableau. Après ce tbody, mets en un deuxième avec tes lignes supplémentaires...

    http://www.w3.org/TR/html401/struct/....html#h-11.2.1 :
    <!ELEMENT TABLE - -
    (CAPTION?, (COL*|COLGROUP*), THEAD?, TFOOT?, TBODY+)>
    TBODY + signifie 1 à n tbody dans la table....

    Edit : Damn trop lent :/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/09/2012, 16h40
  2. Afficher/Cacher des lignes de tableaux
    Par MasterChief78 dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 19/08/2009, 13h16
  3. Afficher/masquer des lignes dans un tableau hiérarchique
    Par linou dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/06/2009, 11h58
  4. Afficher/Masquer des lignes de tableaux
    Par MortyDeath dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/08/2007, 10h22
  5. Liste déroulante : afficher/masquer des lignes
    Par arxpression dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/08/2006, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo