dimension d'une image

Hellmaster
Invité n'ayant pas de compte PHPfrance

14 juin 2005, 17:35

Bonjour à tous
Je vais essayer d'etre clair.

Je dispose d'une fonction javascript qui me permet d'afficher des informations lorsqu'on clique sur un lien, et de les masquer lorsqu'on clique à nouveau:

Code : Tout sélectionner

function affichage(NoId) { if (document.getElementById(NoId).style.display == 'none') { document.getElementById(NoId).style.display = ''; } else { document.getElementById(NoId).style.display = 'none'; } }
Jusque là rien de bien compliquer. Voici ensuite comment j'utilise cette fonction dans du php:

Code : Tout sélectionner

<? $sel = "select mailpqr,telpqr,faxpqr,adressepqr,redacteurpqr,nompqr,numpqr from pqr where nompqr like '%$PQR%'"; $req=mysql_query($sel) or die("erreur dans la requete"); while($resultat = mysql_fetch_array($req)) { $numero=$resultat[6]; echo"<font size=1 face=Arial color=#003366><b>"; echo "<a href=javascript:affichage(".$numero.")>".$resultat[5]."</a><br><br>"; echo"<div id=$numero style=\"display: none\">"; echo "Mail : ".$resultat[0]."<br>"; echo "Tel : ".$resultat[1]."<br>"; echo "fax : ".$resultat[2]."<br>"; echo "Adresse : ".$resultat[3]."<br>"; echo "Redacteur : ".$resultat[4]; echo "<br></b></font></div>"; } ?>

Mon problème est que j'affiche tout ca dans un tableau dont les bordures sont en fait des images. Donc selon le résultat de la requete, et surtout lorsque je clique sur le lien, des lignes en plus apparaissent (logique) et donc mon tableau s'agrandit. Je voudrait donc que les bordure verticales, qui sont en fait des images s'agrandissent aussi.

Donc pour résoudre ce problème je pensai passer par une fonction javascript:

Code : Tout sélectionner

function Dimensionner(nbligne,inter) //nbligne : nombre de ligne que renvoi la requete sql // inter : valeur d'incrémentation de la taille { window.alert("toto"); taille = 50; i=0; while(i<nbligne) { taille = taille+inter; i = i+1; } return taille; }
c'est ensuite que je bloque. Moi je pensai appeler la fonction de cette facon :

Code : Tout sélectionner

<? echo'<td width="4"><img src="Images/hautgauche.jpg" width="4" height="javascript:Dimensionner('.$nbligne.',150)"></td>';?>
Mais ça ne marche pas :(. Donc si quelqu'un a une idée, je lui en remercie d'avance :)

Mammouth du PHP | 19672 Messages

14 juin 2005, 17:46

Il y a plus simple et sans utiliser de JavaScript: met ton image en arrière plan de ta cellule via un style css et joue sur la répétition de l'image:

Code : Tout sélectionner

td.bordure_x {background-image: url(./images/bord_tableau_x.gif); boackground-repeat: repeat-y}
Dans ta balise <td>, ajoute un attribut class="bordure_x" (_X pour identifier quelle bordure bien sûr);
Dans ta feuille de style:
- repeat va répéter l'image en hauteur et en largeur;
- repeat-x va la répéter horizontalement seulement;
- repeat-y va la répéter verticalement seulement;
Et dans ta cellule pour qu'elle ait une dimension normale, tu mets un pixel transparent de la bonne largeur pour un bord vertical ou de la bone hauteur pour une burdure horizontale.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

14 juin 2005, 18:16

Merci beaucoup, je vais essayé.

hellmaster
Invité n'ayant pas de compte PHPfrance

14 juin 2005, 19:22

Bon merci beaucoup, ca fonctionne niquel!

Par contre, j'ai du enlevé l'attribut "class=bordure_x" dans la balise td, sinon ca ne fonctionne pas.(l'image n'apparaissait pas)

Encore merci :)