PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 28-02-2012 12:02:01

Theo17
Membre
Inscription : 05-01-2012
Messages : 16

Tableau scrollable

Bonjour,
J'ai un problème avec un tableau.
Je veux un tableau avec l'entête fixe et le corps du tableau qui puisse défiler.
Voilà une partie de mon code concernant ce tableau :

---
{
   print("<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\">"); 
   print("<table width=630 height=300 border><caption>Enregistrements pour $resultat</caption>");
   print("<thead><tr>");
       
   print("<th width=70px>Commune</th>");
   print("<th width=30px>Naissance</th>");
   print("<th width=50px>Nom</th>");
   print("<th width=50>Prénom</th>");

   print("</tr></thead>");
       
   print("<tbody><tr><td>");
   print("<div overflow:auto>");
   print("<table>");
       
   $ligne = 0;
   while (list($s_paroisse, $s_date_n, $s_nom, $s_prenom) = mysql_fetch_row($result))
   {
      if ($ligne == 0)
      {
         print("<tr>");
         $ligne = 1;
      }
      else
      {
         print("<tr background: #fff>");
         $ligne = 0;
      }
      print("<td width=70>$s_paroisse</td>");
      print("<td width=30>$s_date_n</td>");
      print("<td width=50>$s_nom</td>");
      print("<td width=50>$s_prenom</td>");
      print("</tr>");
   }
   print("</table></div><br>");
   print("</td></tr></tbody></table>");
   print("<div align=center><input type=submit value=\"Retour\")></div>");
   print('</form>');   
}
---

En sortie j'ai l'entête comme ceci :

----------------------------------------------------------------
|         Commune                  |Naissance|   Nom   |Prénom |
|----------------------------------|                           |
|Paris   01/01/1970  TOTO   Prénom                             |
| .....


J'ai donc la cellule th commune de l'entête qui recouvre les 4 cellules td et sous les cellules th naissance, nom et prénom je n'ai rien.
je n'ai pas d'ascenseur à droite  (malgré mon overflow:auto ou même scroll), mais je peux quand même défiler avec la souris.
Mais en défilant l'entête remonte, elle ne reste pas fixe.
Mes largeurs de cellule s'alignent sur le plus grand mot et non sur ma largeur que j'ai définie.

Donc mes questions, qu'est ce que j'ai fait ou pas fait dans ce code qui ne convient pas ?
Je souhaiterais que les cellules th de l'entête correspondent aux cellules td des lignes du tableau.
Je souhaiterais qu'il y ait un ascenseur sur la droite et que mon entête reste fixe.
Je souhaiterais alterner une ligne sur 2 avec une couleur (pourtant testé et non pris en compte).
Je souhaiterais que les mots composés s'affichent sur une seule ligne (par ex un prénom comme Jean Marie est écrit sur 2 lignes)
Je souhaiterais que les largeurs définies par mes width soient bien prises en compte.
Et de plus le bouton input type=submit value=\"Retour\" de l'avant dernière ligne ne s'affiche pas car le tableau prend tout l'écran.

J'essaie tout un tas de variantes et je n'arrive toujours pas, alors merci beaucoup si vous pouvez me sortir de ce pétrin.

Amicalement.

Hors ligne

#2 28-02-2012 12:14:12

Theo17
Membre
Inscription : 05-01-2012
Messages : 16

Re : Tableau scrollable

En fait l'ascenseur y est bien et mon bouton retour aussi, mais le tableau fait la hauteur de toutes les lignes de mon fichier malgré la largeur et la hauteur que j'ai pourtant défini en witdh et height dans <table> et là non plus ce n'est pas pris en compte.

Hors ligne

#3 29-02-2012 09:28:04

Theo17
Membre
Inscription : 05-01-2012
Messages : 16

Re : Tableau scrollable

Bonjour,
Voilà j'avance mais encore des problèmes :

---
print("<div style=\"width=630px; height=320px;overflow:scroll\">");
print("<table  border><caption>Enregistrements pour $resultat</caption>");
print("<thead><tr>");
       
print("<th style=\"width=70px;\">Commune</th>");
print("<th width=30px>Naissance</th>");
print("<th width=50px>Nom</th>");
print("<th width=50>Prénom</th>");
print("</tr></thead>");
       
print("<tbody style=\"height:300px;\">");
$ligne = 0;
while (list($s_paroisse, $s_date_n, $s_nom, $s_prenom) = mysql_fetch_row($result))
{
   if ($ligne == 0)
   {
      print("<tr>");
      $ligne = 1;
   }
   else
   {
      print("<tr style=\"background: #fff;\">");
      $ligne = 0;
   }
   print("<td style=\"width=70px;\">$s_paroisse</td>");
   print("<td width=30>$s_date_n</td>");
   print("<td width=50>$s_nom</td>");
   print("<td width=50>$s_prenom</td>");
   print("</tr>");
}
print("</tbody></table></div>");
---

J'ai bien mon tableau complet, titre et lignes bien alignés, mais encore ces manques :
Malgré mon width et mon height dans le div de la table, le tableau se cale à gauche avec une largeur correspondante aux plus grands mots des lignes et dépasse l'écran en hauteur.
J'ai sur la droite de l'écran une ligne pour un ascenseur, mais elle est disabled et n'a pas le grand bouton de déplacement malgré mon overflow:scroll
Mon entête n'est pas fixe et remonte quand je déplace les lignes vers le bas avec la roulette de la souris.
Et toujours les largeurs de cellule se calent sur le plus grand mot et non sur mon width qui est pourtant défini.
Je mettrais tous les styles en css quand tout sera au point.
Merci de vos réponses.

Hors ligne

#4 01-03-2012 23:16:17

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Tableau scrollable

Bonjour,

Je ne sais pas si tu as déjà lu la charte de ce forum, mais le sujet a déjà été abordé sur le forum, et le problème pour ainsi dire, résolu.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#5 02-03-2012 09:01:46

Theo17
Membre
Inscription : 05-01-2012
Messages : 16

Re : Tableau scrollable

désolé mais je ne l'ai pas vu, comment peux t on le retrouver ? merci

Hors ligne

#6 02-03-2012 11:44:30

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Tableau scrollable


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 02-03-2012 11:55:39

Theo17
Membre
Inscription : 05-01-2012
Messages : 16

Re : Tableau scrollable

J'ai trouvé !!!
Une classe dans le thead avec un display:block, les width et height et une classe dans le tbody avec overflow:auto, un display:block et les width et height, puis définition du td avec sa width.
Et çà marche super bien.
Merci à tous.

Hors ligne

Pied de page des forums