Vous n'êtes pas identifié(e).
Pages :: 1
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
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
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
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
désolé mais je ne l'ai pas vu, comment peux t on le retrouver ? merci
Hors ligne
En cherchant un chouia : faire un tableau HTML à <tbody> scrollable verticalement par Maljuna Kris
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
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
Pages :: 1