Page 1 sur 1

probleme pour cacher a l'affichage une partie des données

Posté : 13 sept. 2007, 16:37
par nous
Bonjour,

Voila je voudrai que cela m'affiche qu'une partie des tableaux quand la fenêtre s'ouvre, en faite je le fait afficher selon la date de l'enregistrement si elle est passé le tableau est caché(mis l'on peut quand meme le faire afficher).
Mais bon pour l'instnt mon souci c'est que quand j'ouvre cela s'affiche malgré qu'il sait que cela doit etre cacher.
donc pour baliser j'ai fait :
<?php if ($sty=='hidden') {
?>

	<div id="part1" style="visibility:hidden">
	
	
	
	<?php } else { ?>
	
	<div id="part1" style="visibility:visible"> 

	 <?php  } ?> 
ensuite j'ai mon tableau mes requetes et un div a la fin.

J'ai testé avec du texte sans tableau et cela marche mais pas avec les tableau dans les div.

Auriez vous une idée d'ou pourrai venir le probleme ?

merci

Posté : 13 sept. 2007, 16:42
par Ryle
si ton div est visible c'est que tu rentres dans le else et pas dans le if, donc que $sty ne contient pas 'hidden'. Regarde du côté de cette variable, affiche là pour voir ce qu'elle contient, ...

Posté : 13 sept. 2007, 17:07
par nous
non justement cest bien dans hidden qu'il rentre

Posté : 13 sept. 2007, 17:36
par Ryle
Euh... ote moi d'un doute... ton tableau il est bien inclu dans ton div ? c'est pas un div que tu colles n'importe où en plein milieu d'un tableau entre deux lignes ou deux cellules ?

Si ca fonctionne avec du texte simple, il n'y a aucune raison pour que cela ne le fasse pas avec n'importe quel autre élément html....

Posté : 14 sept. 2007, 09:33
par nous
mon div est entre 2 lignes, en effet c'est ça le probleme. Mais ya pas un moyen de contourner ?

Posté : 14 sept. 2007, 09:39
par Cyrano
Dans un code HTML conforme, il est interdit d'insérer quoique ce soit entre les lignes d'un tableau.
Une balise <table> ne peut avoir comme contenu direct QUE des balises <caption> (facultatives), <thead> (facultatives), <tbody> (facultatives), <tfoot> (facultatives) ou <tr> (obligatoire), cette dernière pouvant se trouver imbriquée dans les trois précédentes.
Une balise <tr> ne peut contenir QUE des balises <th> ou <td>. Ensuite seulement tu peux mettre d'autres types de balises à l'intérieur des <th> ou <td>.

En d'autre termes, si tu as un <div> à afficher dans un tableau, il ne peut se trouver qu'à l'intérieur d'une balise <th> (pas terrible sémantiquement) ou <td>, sinon, ce sera en dehors du tableau.

Posté : 14 sept. 2007, 10:05
par nous
j'ai essayé avec
<tr  style="visibility:hidden">
mais ça ne fonctionne pas. Je n'ai pas d'autre choix que d'utiliser un tableau

merci

Posté : 14 sept. 2007, 10:19
par Cyrano
Fais donc voir le code généré complet de la partie concernée, ce sera plus facile pour t'aiguiller vers une solution fonctionnelle.

Et j'ajoute qu'on est JAMAIS obligé d'utiliser un tableau : un tableau est fait pour mettre en forme des données dites "tabulaires", pas pour faire de la mise en page. ;)

Posté : 14 sept. 2007, 10:54
par nous
tout d'abord mon tableau est un vrai tableau il n'est pas utiliser pour mettre en page. Bon finalement j'ai reussi en mettant les propriétés dans tr. Le souci, cest que je veux aussi que l'utilisateur puisse l'afficher grace a un bouton + ou - selon la date concerné.
En faite si il s'agit de truc ancien cela m'affiche un bouton + avec l'intitulé et le reste est caché et ainsi de suite sur la fenetre.
Mais je voudrais que si la personne clique sur le + cela affiche le detail de cette parti mais pas forcement des autres caché, le souci c'est que vu que je n'utilise plu les balises je ne vois pas comment faire
merci

Posté : 14 sept. 2007, 11:16
par Cyrano
Deux choses :
-1- Sans code, impossible de repérer une erreur;
-2- Tout ça se passe coté client, donc on est en JavaScript et le sujet ne concerne pas directement le PHP. Il faut utiliser des gestionnaires d'évènements onclick pour gérer l'affichage ou le masquage de tel ou tel élément d'une page.

Posté : 15 sept. 2007, 17:33
par Truc