[CSS] Cacher / afficher ligne tableau

Cacher / afficher ligne tableau [CSS] - HTML/CSS - Programmation

Marsh Posté le 26-10-2013 à 23:26:16    

Bonsoir,
 
Je débute en CSS et je cherche à cacher/ afficher des lignes d'un tableau.
 
Lorsque l'utilisateur clique sur le plus, une ou plusieurs lignes doivent apparaitre dessous.
A contrario, lorsqu'il clique sur le moins orange, les lignes doivent se cacher.
Voici à quoi ressemble le tableau :
http://planetebateau.fr/temp/Sanstitre.png
 
Je vois bien comment faire ça en PHP mais cela implique un rechargement de la page. Pour éviter cela, je cherche à effectuer cette opération à l'aide de la feuille de style CSS.
Je souhaiterais éviter au maximum le javascript que je connais pas du tout ...
 
Merci d'avance pour votre aide


---------------
Mon vieux feedback :)
Reply

Marsh Posté le 26-10-2013 à 23:26:16   

Reply

Marsh Posté le 26-10-2013 à 23:52:35    

Javascript?

Reply

Marsh Posté le 27-10-2013 à 01:00:45    

Oui en Javascript.
Il faut que le + et le - soit associés à des objets HTML qui supporte le onClick().
Par exemple avec des :

<A onClick="javascript:apparition(laligne);">+</A> et <A onClick="javascript:disparition(laligne);">-</A>


Puis la disparition se fait par la fonction :

function javascript:disparition(maligne) {  
   document.getElementById(maligne).style.display="none";
}


Et la réapparition par :

function javascript:apparition(maligne) {  
   document.getElementById(maligne).style.display="block";
}

Reply

Marsh Posté le 27-10-2013 à 12:06:11    

Merci pour vos réponses,
Je pense qu'il est temps de me lancer dans le javascript...
Malheureusement je dois mal intégrer le code et cela ne marche pas.
 
D'après ce que j'ai pu trouver, les fonctions sont à renseigner dans le Head. Voici ce que j'ai mis :

Code :
  1. <head>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  3. <title>Liste_fiche_bateau</title>
  4. <script type="text/javascript">
  5. function javascript:disparition(maligne) { 
  6.  document.getElementById(maligne).style.display="none";
  7. }
  8. function javascript:apparition(maligne) { 
  9.  document.getElementById(maligne).style.display="block";
  10. }
  11. </script>
  12. <style type="text/css">
  13. <!--
  14. @import url("style.css" );
  15. -->
  16. </style>
  17. </head>


 
Ensuite j'appelle la fonction disparition en cliquant sur l'image du trait moins orange ou sur le nom de la première colonne:
 

Code :
  1. <td class="bateau"><A onClick="javascript:disparition('Ligne1');"><IMG SRC="table-images/Moins_orange.png" ALT="+" TITLE="Cacher les versions"></a></td>
  2. <td class="bateau"><A onClick="javascript:disparition('Ligne1');">First 210</a></td>


 
Pour finir je déclare l'id de la ligne de mon tableau en le nommant Ligne1 :

Code :
  1. <tr id="Ligne1">
  2.   <td class="version"></td>
  3.          <td class="version"> Quillard PTE </td>
  4.             <td class="version"> Tirant d eau : 6.25 m </td>
  5.             <td class="version"></td>
  6.   <td class="version"></td>
  7.             <td class="version"></td>
  8.   <td class="version"></td>
  9.   <td class="version"></td>
  10.         </tr>


 
J'ai testé en remplaçant l'id du tr par style="display:none" et la ligne est bien cachée.
Je travail en local directement sur mon disque dur.
Avez-vous une idée d'ou le problème pourrait venir?
 
Merci d'avance,

Reply

Marsh Posté le 27-10-2013 à 18:52:25    

Désolé, j'avais répondu sans testé, et un copier/coller m'a fait mettre le mot javascript: en trop.
Au lieu de :
 
function javascript:disparition(maligne) {
 
écrire :
 
function disparition(maligne) {  
 
Et idem pour l'autre fonction.

Reply

Marsh Posté le 27-10-2013 à 19:17:32    

C'est bon ça marche,
Pour afficher plusieurs lignes en même temps j'ai utilisé la fonction :
document.getElementByClassName
Merci encore pour votre aide ....


---------------
Mon vieux feedback :)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed