Tableau

cs_jaco13 Messages postés 110 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 octobre 2007 - 8 mars 2005 à 15:01
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 - 13 mars 2005 à 10:48
Bonjour
J'ai fait un petit programme avec un admin en php qui fonctionne bien pour l'instant. N'empêche qu'à l'affichage, j'ai un petit problème lorsque les résultats s'inscrivent.
Selon la longueur des résultats qui s'affichent dans les cases du tableau prévues pour les accueillir, j'ai tout mon tableau qui se déforme! Alors ça fait moche comme tout car à chaque demande de résultats, le tableau s'étire ou retrécit selon ce qui s'affiche dedans.
J'ai mis une feuille de style pour afficher les résultats en php qui doivent s'afficher dans les cases du tableau mais rien n'y fait. Et pourtant, le résultat le plus long qui peut s'afficher et bien plus petit que la case où il va s'inscrire.
No conprendo!

20 réponses

nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
8 mars 2005 à 15:37
Salut Jaco !



Colle ton code afin que j'y jette un oeil stp.



@+
0
cs_navya Messages postés 33 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 8 novembre 2007
8 mars 2005 à 15:47
Salut,
Essai de mettre dans tes balise <td></td> ou <tr></tr> si c'est bien un tableau en html un truc du style :

<td width="90%">resultat</td>
ou
<tr width="90%">resultat</tr>
Bien sur le poucentage peut être modifié mais ce width permet de fixer la taille des cellules par rapport au tableau général!!!
Navya
0
cs_jaco13 Messages postés 110 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 octobre 2007
8 mars 2005 à 15:52
Voilà mon code! C'est la page "index.php" de l'affichage.
La partie concernée est en rouge et toutes les autres cases de mon tableau recevant les résultats sont programmées sur le même principe et se trouvent à la suite de la partie en rouge.


0
cs_jaco13 Messages postés 110 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 octobre 2007
8 mars 2005 à 16:09
Je viens de nettoyer un peu le code car j'ai remarqué que dans la partie en rouge, il y avait des en double. C'est parce que j'ai déplacé le code d'une case à l'autre et le n'a pas suivi.
Je ne comprends pas trop ce que tu veux dire par

<td width="90%">resultat</td>
ou
<tr width="90%">resultat</tr>

Regarde mon code en rouge en haut et dis-moi si ta proposition est toujours valable?
<td width="90%"> , ça veut dire tout le tableau çà?
Je ne sais pas travailler avec les % dans les tableaux.


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
8 mars 2005 à 16:11
Re,



Il faudrait que tu fixes une valeur pour chacun de tes <td> qui recevra un résultat variable.



J'ai remarqué que tu faisais des indentations avec des espaces. Je te le déconseille, utilise plutôt la touche "tabulation".



Si tu veux, tu peux également mettre ta "class" dans le <td>, ainsi, au lieu d'avoir :



<tr>


<td bgcolor="#999999" class="libelle">Musique de: </td>


<td colspan="3" align="center" bgcolor="#FFFFFF">



<?

echo $resfilm['musique'];

?>



</td>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td>&nbsp;</td>

</tr>



Tu auras :



<tr>

<td bgcolor="#999999" class="libelle">Musique de: </td>

<td colspan="3" align="center" bgcolor="#FFFFFF" class="texteresultat">

<? echo $resfilm['musique']; ?>

</td>

<td>&nbsp;</td>

<td>&nbsp;</td>

<td>&nbsp;</td>

</tr>



Voilà, j'espère que ça ira, sinon, n'hésites pas à donner tes tables.

@+
0
cs_navya Messages postés 33 Date d'inscription mardi 1 mars 2005 Statut Membre Dernière intervention 8 novembre 2007
8 mars 2005 à 16:17
Comme dit nougitch, rajoute en plus dans son code ceci
<tr>
<td width="100%" bgcolor="#999999" class="libelle">Musique de: </td>
<td width="100%" colspan="3" align="center" bgcolor="#FFFFFF">
au lieu de mettre width="37", les pourcentage sont beaucoup mieux que les pixels, ils sont plus précis!!

Navya
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 mars 2005 à 16:40
Moi, ce que j'en dis, c'est que l'attribut width pour les <td> est deprecie...sans parler de bgcolor et autres...

Une css bien foutue ferait tres bien le travail.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 mars 2005 à 18:19
Salut,



merci pour le double post...



Bref cherches du côté de la fonction wordwrap.



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
cs_jaco13 Messages postés 110 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 octobre 2007
9 mars 2005 à 01:46
Voilà mon code après avoir suivi vos conseils et ça ne fonctionne toujours pas!
Peut-être qu'il ne faut pas mettre 100% partout?


0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
9 mars 2005 à 09:58
Salut,
Pour continuer dans le sens de Malam, le mieux c'est de ne mettre que la syntaxe structurelle dans ton fichier html, et d'utiliser une css pour tout ce qui cioncerne la forme, afin d'obtenir un truc du genre :
titre1 |
titre2 |
titre3 |

----

blablabla,
blablabla,
blablabla

et dans ton css tu mets tous les attributs sur la forme :
.col1{ border-width:1px; color:#00FFFF; text-align:center; width:100%; background-color:#FFFFFF; ...}
etc...

Ton code sera beaucoup plus clair

Arnaud
0
cs_jaco13 Messages postés 110 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 octobre 2007
10 mars 2005 à 00:48
Bon! J'ai essayé tout ce que vous m'avez conseillé de faire mais malheureusement, rien ne résoud mon problème. Mon tableau se déforme toujours selon la longueur du résultat affiché.
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
10 mars 2005 à 09:40
ça m'étonne !
qu'as-tu mis dans ta css ? et dans tes balises ?
0
cs_jaco13 Messages postés 110 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 octobre 2007
10 mars 2005 à 11:26
ça m'étonne !
qu'as-tu mis dans ta css ? et dans tes balises ?

J'ai essayé de faire comme tu m'as dit dans ton exemple mais tout se déglingue quand même. Je n'ai certainement pas dû rentrer les bonnes informations car si tu me dis que chez toi, ça marche, c'est que ça doit marcher.
Mon tableau n'est pas uniquement en colonnes et a des libellés en colonnes et en lignes du style:

CINEMA: résultat SALLE: résultat PROJECTION DU: résultat AU: résultat
TITRE: résultat
REALIS: résultat PHOTO DE L'AFFICHE
MUSIQUE DU FILM
DE: résultat
ACTEUR: résultat
VERSION: résultat
RESUME:résultat

Les horaires de la semaine
JOUR: résultat JOUR: résultat JOUR: résultat JOUR: résultat
JOUR: résultat JOUR: résultat JOUR: résultat

J'ai même fait un 2ème tableau réservé aux horaires de la semaine pour voir si çà irait mieux en mettant 2 tableaux indépendants l'un de l'autre. Eh non! Lorsque le premier se déglingue, le 2éme le suit.
Je pensais avoir des problèmes sur la programmation en PHP mais je ne m'attendais pas à en avoir sur un tableau qui ne tient pas en place.
L'exemple que tu m'as donné dans ton message est un peu trop concis pour moi car je travaille toujours les css avec la boite de dialogue de la css et non dans le code directement. Cette fois-ci,en ne trouvant pas les éléments que tu m'indiquais dans la boite de dialogue de la css, je suis allé faire les modif directement dans le code mais j'ai dû faire des conneries. Et je ne comprends pas aussi pourquoi faut-il mettre width=100% comme tu me l'as écrit en-dessous car mes libellés de la première ligne d'en haut n'occupent pas 100% du tableau??? On met 100% quand on veut que le libellé occupe toute la largeur du tableau non?

et dans ton css tu mets tous les attributs sur la forme :
.col1{ border-width:1px; color:#00FFFF; text-align:center; width:100%; background-color:#FFFFFF; ...}
etc...
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
11 mars 2005 à 09:41
En effet, 100% c'était un exemple.


Renvoie tout ton code (index.php et ton css)


Petite suggestion pour la route : préfère la balise "<?php", plus complète, explicite et standard à la balise raccourcie "<?".

Arnaud
0
cs_jaco13 Messages postés 110 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 octobre 2007
11 mars 2005 à 09:53
Revoici mon code de "index.php" et après lui, je collerai la css.
Merci beaucoup pour l'intérêt que tu portes à mon problème.

0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
11 mars 2005 à 12:39
Quelques remarques pour y voir plus clair :

¤ L'intérêt d'utiliser une CSS c'est de pouvoir complètement séparer le fond de la forme. Ainsi, pour plus de clareté, il faut enlever des balises html tous les attributs sur la forme (bgcolor, width, align ...)! sinon tu risque d'avoir un conflit entre les attributs de la balises et ecux de la css. Puisque tu utilises une css, enlève aussi les attribut style de tes balises et mets tout dans la css. Evite d'éparpier les info sur le style. Par exemple :

Il y a des infos sur le style directement dans la balises (style='...) et dans la css à la class ".centrage". Dans ta css, si tu veux mettre des infos que sur une balise, utilise sont id :
#principal {position:absolute; width:760px; height:700px; z-index:1; left: 50%; top: 50%;}

¤ Essaie de simplifier la hierarchie entre les blocs : Est-il vraiment nécessaire d'imbriquer 4 div en plus du tableau ?

¤ Ces lignes sont inutles :
<script language="JavaScript" type="text/JavaScript">
</script>
<script language="JavaScript" type="text/JavaScript">
</script>

¤ Remplace tous tes <? par des <?php

¤ Accorde ta page à un DTD, par exemple
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//FR" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
au lieu de <html>. Ainsi tu pourras vérifier la validité de ta page vis à vis des standards du web définis par le W3C.

¤ Pour ton pb de dépassement des cases, as-tu essayer la fonction php trim() ?

Arnaud
0
cs_jaco13 Messages postés 110 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 octobre 2007
11 mars 2005 à 13:36
J'ai besoin de cette ligne pour centrer le calque. C'est la méthode que l'on a appris en stage pour qu'un site soit toujours bien centré par rapport à l'écran et ça fonctionne très bien. Indispensable donc.
La feuille de style ".centrage" et celle à adapter sur le div du dessus. Les 2 sont indissociables pour que cela fonctionne bien. Pas de problèmes là-dessus pour le moment.

¤ Essaie de simplifier la hierarchie entre les blocs : Est-il vraiment nécessaire d'imbriquer 4 div en plus du tableau ?

Pas vraiment nécessaire mais j'ai appris à travailler comme çà et ça ne me perturbe pas plus que çà.

¤ Ces lignes sont inutles :
<script language="JavaScript" type="text/JavaScript">
</script>
<script language="JavaScript" type="text/JavaScript">
</script>

Je viens d'en supprimer une des deux mais je vais mettre du javaScript dans mon site et il va donc me les falloir.

¤ Remplace tous tes <? par des <?php

Je viens de suivre ton conseil et je les ai toutes changées! Même celles qui étaient dans mon admin.

Accorde ta page à un DTD, par exemple
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//FR" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
au lieu de <html>. Ainsi tu pourras vérifier la validité de ta page vis à vis des standards du web définis par le W3C

Je supprime vonlontairement ces lignes à chaque ouverture de nouvelle page. C'est encore quelque chose qu'ils nous ont appris en stage car sinon il est impossible de faire F12 pour faire une visue de ce qu'on est en train de faire à l'écran si on garde ces lignes.

¤ Pour ton pb de dépassement des cases, as-tu essayer la fonction php trim() ?

Non, je ne connais pas çà! Je ne sais pas trop manipuler les fonctions et je ne sais pas à quoi elle pourrait servir cette fonction?
Jacques
0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
11 mars 2005 à 15:05
Le but de la plupart de mes conseils est pour que ton code soit plus clair, qu'il soit plus facilement "corrigeable" (par toi ou par quelqu'un d'autre ;o) )

J'ai besoin de cette ligne pour centrer le calque. C'est la méthode que l'on a appris en stage pour qu'un site soit toujours bien centré par rapport à l'écran et ça fonctionne très bien. Indispensable donc.

=> En fait, le "left: 50%; top: 50%;", c'est effectivement très bien pour centrer un élément sur une page, c'est le plus efficace. La seule chose que je te suggérère, c'est de mettre tout ça "position:absolute; width:760px; height:700px; z-index:1; left: 50%; top: 50%;" dans ta css, au leu de le mettre dans la balise
.

La feuille de style ".centrage" et celle à adapter sur le div du dessus. Les 2 sont indissociables pour que cela fonctionne bien. Pas de problèmes là-dessus pour le moment.

=> Attention, je pense que tu fais une confusion :
Pour un même élément html, tu peux définir des attributs de mise en forme de 4 manières "différentes" :

- soit directement dans la balise en utilisant des attributs de forme, par exemple <td width="..." bgcolor="..."> Mais la plupart de ces attributs sont obsolètes. Il ne faut pas utiliser cette méthode, elle mélange la mise en forme et la structure.

- soit avec l'attribut style directement dans la balise html, comme ci-dessus :
, ponctuellement pourquoi pas, mais sur toute une page, il faut préférer une des 2 autres méthodes ;

- soit avec une css en utilisant une class :
et dans la css : .nomClasse { position:...; width... }. NB : dans la css, le nom de la class est précédé d'un point. Cette méthode permet de définir une mise en forme similaire pour plusieurs éléments. Par exemple :
CSS : .caseRouge { background-color:red; color:white; }
HTML : blabla, blablabla, blabla

- soit avec une css en utilisant un identifiant. C'est presque cmme avec une class, sauf qu'un idententifiant est unique (un id = un et un seul élément) et que dans la css le nom de l'id est précédé d'un dièse. Par exemple :
CSS : #premiereCase { color:blue; } #deuxiemeCase { color:green; }
HTML : blabla, blablabla

Donc, lorsque tu écris
le style de la css qui s'applique est celui de .centrage{} et celui de #principal{}. A contrario, lorsque tu écris
le style de la css qui s'applique est celui de #centrage{} (qui n'existe pas), mais pas celui de .centrage !

¤ Essaie de simplifier la hierarchie entre les blocs : Est-il vraiment nécessaire d'imbriquer 4 div en plus du tableau ?
Pas vraiment nécessaire mais j'ai appris à travailler comme çà et ça ne me perturbe pas plus que çà.
=>En fait, plus tu imbriques d'éléments, plus il sera difficile de mettre la page en forme. La plupart du temps, tu peux tout à fait te passer d'imbrication ! Tu gagneras encore en clarté.

¤ Ces lignes sont inutles :
<script language="JavaScript" type="text/JavaScript">
</script>
<script language="JavaScript" type="text/JavaScript">
</script>
Je viens d'en supprimer une des deux mais je vais mettre du javaScript dans mon site et il va donc me les falloir.
>En fait, ce sont des balises. Le seul intérêt est de définir le langage de ce qui est entre la balise d'ouverture (<script...>) et la balise de fermeture (</script>). Dans ton cas il n'y a rien, donc c'est totallement inutile ! Si ton site contient du javascript, tu ouvres une balise juste avant d'écrire ton script js, et tu la refermes juste après. Pas besoin de "déclaration" au début de la page. Pour être exact, la balise est <script type"text/javascript">ton code javascript</script>.
Tu peux aussi mettre tout ton code javascript dans un fichier séparé, à ce moment là, tu l'appeleras ainsi, dans ton head : <script src="chemin/fichier.js" type="text/javascript"></script>

¤ Remplace tous tes <? par des <?php

Je viens de suivre ton conseil et je les ai toutes changées! Même celles qui étaient dans mon admin.
=>Super ;o)

Accorde ta page à un DTD, par exemple
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//FR" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
au lieu de <html>. Ainsi tu pourras vérifier la validité de ta page vis à vis des standards du web définis par le W3C
Je supprime vonlontairement ces lignes à chaque ouverture de nouvelle page. C'est encore quelque chose qu'ils nous ont appris en stage car sinon il est impossible de faire F12 pour faire une visue de ce qu'on est en train de faire à l'écran si on garde ces lignes.
=> faire F12 ? où ça ? Le but de ces lignes est de permettre au navigateur de vérifier que la page est conforme aux normes. Je sais pas avec quoi tu développe, mais ça m'étonne que les normes ne soit pas supportées ! Lorsque tu as fini une page, le bon réflexe est de vérifier qu'elle est valide sur http://validator.w3.org/

¤ Pour ton pb de dépassement des cases, as-tu essayer la fonction php trim() ?
Non, je ne connais pas çà! Je ne sais pas trop manipuler les fonctions et je ne sais pas à quoi elle pourrait servir cette fonction?
=>http://www.php.net/manual/fr/function.trim.php, je vais pas non plus tout te faire ;o)

Arnaud
0
cs_jaco13 Messages postés 110 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 22 octobre 2007
11 mars 2005 à 18:06
Bon! Laissons tomber! Sans vouloir t'offusquer, tes conseils sont sans doûte très précieux et je les appliquerai à un autre moment que maintenant car pour l'instant, mon soucis est plutôt porté sur mon tableau qui se déforme à chaque nouveau résultat de php et non pas sur la remise en question de tout ce que j'ai appris jusqu'à aujourd'hui.
Bien que tous ces conseils soient sans doûte indispensables pour engendrer un super fonctionnement du site, mes scripts ont toujours bien marché comme ils étaient programmés au niveau des div et compagnie et là, je reste toujours sans réponse à la seule question qui intéressait finalement mon problème.
Tu rentres dans des détails qui sont sans doûte très importants mais qui ne me sont pas primordiaux pour l'instant. Tu sais bien que la programmation est une chose très difficile. J'ai trouvé un petit fil conducteur pour arriver à peu près à chaque fois à mes fins et il faut bien comprendre que je ne peux pas me permettre de remettre en question toutes mes connaissances même si elles ne sont pas tip-top.
J'avais plus besoin d'une solution finalement que de conseils et j'aurai adopté la méthode de moi-même pour mes autres sites.
Tu sais, je pense que si quelqu'un pose une question sur un forum, c'est qu'il a déjà tourné autour du pot pendant un bon moment. Je ne désirai pas qu'on décortique les balises de mon code ou de mon javascript, je voulais une solution pour mon tableau et si mon tableau s'était mis à fonctionner, là j'aurai pu ensuite me pencher sur mes autres lacunes mais pas avant.
Merci beaucoup quand même pour ton concours et pour l'attention que tu as portée à ma demande. Tu es un garçon très dévoué, très serviable et sans doûte très doué.
Jacques

0
arnal69130 Messages postés 445 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 22 mars 2007 2
13 mars 2005 à 10:48
Merci Jacques pour tes compliments. Je ne voulais pas te décourager (au contraire). Tout ce que tu as fait est très bien, en dehors des 2 ou 3 points que je t'ai montré. En fait je reste convaincu que la solution à ton problème se trouve dans ces conseils. Tu sais, je pense qu'en une ou 2 heures maxi tu peux réussir à les appliquer à ta page, plutôt que de continuer à coder de travers. Quant à te donner une solution toute faite, cela aurait été plus facile si tu avais eu du code propre ;o).
Tant pis.

Bonne continuation.
Arnaud
0
Rejoignez-nous