Probleme de formulaire avec un tableau

Eléphant du PHP | 351 Messages

19 févr. 2006, 08:03

Bonjour,

J'ai fait un tableau, dedans j'ai mis un formulaire avec un champ de texte et un bouton "Envoyer"

Mais le probleme c'est que apres le formulaire il y'a un espace d'environ 10 pixels avant la bordure de bas du tableau

Voilà une image pour expliquer :

Image

Comment faire pour enlever l'espace ?

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

19 févr. 2006, 10:59

Prendre une gomme ? :langue:

Désolé, mais je trouve aberrant qu'on demande de l'aide
sur un bug dans le code... sans montrer le code ! #-o

Comment veux-tu qu'on t'aide ? :roll:

Eléphant du PHP | 351 Messages

19 févr. 2006, 11:40

Désolé voilà le code :

Code : Tout sélectionner

<div align="center"> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="144" height="60"> <tr> <td width="144" height="60"> <form method="POST" action=""> <p align="center"> <input type="text" name="T1" size="20"><input type="submit" value="Envoyer" name="B1"></p> </form> </td> </tr> </table> </div>
L'espace blanc apparait bizarrement, comment l'enlever ?

Mammouth du PHP | 965 Messages

19 févr. 2006, 12:12

ta mis un height 60 peut être qu'en reduisant sa pourrait marcher ?

essaye de changer les tailles et les width peut être !

je passais juste dans le coin :roll:

Mammouth du PHP | 19672 Messages

19 févr. 2006, 12:32

Proposition : tu peux parfaitement mettre ça en forme non seulement sans cette marge supplémentaire inutile, mais également sans utiliser de tableau en utilisant un style CSS.
Le code HTML
<form id="form" method="POST" action="">
  <p>
    <input type="text" name="T1" id="T1" size="20" /><input type="submit" value="Envoyer" name="B1" />
  </p>
</form>
Le style CSS

Code : Tout sélectionner

<style type="text/css"> /* <![CDATA[ */ #form { width: 144px; border: 1px solid #000; position: relative; top: 0; left: 50%; margin-left: -72px; } /* ]]> */ </style>
La différence ? j'ai viré le tableau et rajouté un attribut id dans labalise <form> : ensuite, je traite l'élément formulaire comme un bloc en le positionnant, en lui donnant des dimensions et en le centrant avec le style CSS approprié.

C'est plus rapide et beaucoup plus facile par la suite de faire une refonte de mise en page en ne modifiant que la feuille de style sans même ouvrir le fichier HTML.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
ViPHP
ViPHP | 3008 Messages

19 févr. 2006, 12:33

Code : Tout sélectionner

<table cellpadding="0" cellspacing="0" style="border: #111111 solid 1px; width: 144px;"> <form method="POST" action=""> <tr> <td align="center"><input type="text" name="T1" size="20"><br /><input type="submit" value="Envoyer" name="B1"></td> </tr> </form> </table>
Edit : si tu veux garder ton tableau, mais la solution de Cyrano en CSS pure est conseillée ;)

Mammouth du PHP | 19672 Messages

19 févr. 2006, 12:59

charabia, je suis au regret de devoir te taper sur les doigts :langue: ton code est invalide : on ne doit rien inscrire entre une balise <table> et une balise <tr>, pas plus qu'entre </tr> et </table>

Il faut considérer le tableau comme un tout incluantant les <tr> et les <td> : on ne peut rien insérer en dehors des balises <td>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 965 Messages

19 févr. 2006, 13:21

pourtant je definis mes classe dans les td par exemple comme il est expliquer dans le menu deroulant de ALSA creation.

J'ai pris cette habitude de definir les class de cette manière ...

Mammouth du PHP | 19672 Messages

19 févr. 2006, 14:17

Le problème, ce ne sont pas les classes, c'est ceci:

<table cellpadding="0" cellspacing="0" style="border: #111111 solid 1px; width: 144px;">
<form method="POST" action="">
<tr>

La balise <form> n'a strictement rien à faire ici : elle doit être en dehors du tableau donc avant la balise <table> ou bien à l'intérieur d'une cellule <td> à la condition expresse que le formulaire dans une cellule soit complet et que la balise de fermeture </form> soit impérativement dans la même cellule : cette condition est obligatoire pour la conformité du code (X)HTML toutes versions
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
ViPHP
ViPHP | 3008 Messages

19 févr. 2006, 14:41

charabia, je suis au regret de devoir te taper sur les doigts :langue: ton code est invalide : on ne doit rien inscrire entre une balise <table> et une balise <tr>, pas plus qu'entre </tr> et </table>

Il faut considérer le tableau comme un tout incluantant les <tr> et les <td> : on ne peut rien insérer en dehors des balises <td>
Aiieeeeeeuuuhhh :roll:
Autant pour moi ! Le <form> en dehors du tableau règle le problème aussi

Eléphant du PHP | 351 Messages

19 févr. 2006, 15:39

Merci ça a marché