5568 sujets

Sémantique web et HTML

Bonsoir,
Je fais un formulaire de modification d'une page en php.
Pour cela j'affiche toutes les données dans des zones de texte "<input type="text"...> dans des cellules d'un tableau de 4 colonnes.
Mon souci : je n'arrive pas à paramétrer ces zones de texte pour qu'elles fassent la largeur des 4 colonnes et que la hauteur s'adapte à la longueur du texte inséré.

Voici ce que j'ai tenté :
<tr><td><i>Milieu de formation : </i></td><td colspan=4><input type="text" name="milieu" value ="<?php echo $milieu['nomMilieu'];?>"</td></tr>


ou :
<tr><td><i>Description du matériau : </i></td><td><input rows="1" cols="28" type="text" name="materiau" value ="<?php echo $result['materiau'];?>"</td></tr>


Ce dernier code marchait bien pour le formulaire initial d'envoi des données ???
Un grand merci par avance si vous aviez une piste. Très bonne soirée,
Evelyne31
Bonjour,

Toutes tes lignes du tableau ont-elles le même nombre de colonnes ? si ce n’est pas le cas il le faudrait parce que tu dis que ton tableau fait 4 colonnes et dans les 2 lignes que tu donnes en exemple la première a 5 colonnes, la deuxième 2.

P.S. Utilise le css plutôt que les balises <i> pour mettre en italique car si un jour tu veux changer le style de la première colonne de ton tableau il faudra que tu fasses autant de modifications qu’il y a de lignes.
Même remarque, pour la mise en page préfère le css aux tableaux.
Bonjour adrien881,
Je te remercie pour ta réponse. J'ai rectifié mes colonnes (4) et rien ne bouche, j'ai toujours une zone de texte fixe de 28 caractères partout.
Je souhaiterais que pour certaines cellules, en les fusionnant, ma largeur de zone de texte s'étende sur 3 colonnes, la 1ère étant réservée pour l'intitulé.

Je remets mon code rectifié :
<tr><td><i>Description du matériau in situ : </i></td><td><input rows="1" cols="3" type="text" name="materiau" value ="<?php echo $result['materiau'];?>"</td></tr>


C'est incompréhensible Smiley rolleyes . Un grand merci par avance si tu avais une piste.
Je te souhaite une très bonne journée,
Evelyne31
Ta balise input n’est pas fermée. Rajoute dans ton code les caractères en rouge :
<input rows="1" cols="3" type="text" name="materiau" value ="<?php echo $result['materiau'];?>"/></td></tr>

A priori les attributs rows="1" cols="3" sont en trop.
Si tu veux une cellule de tableau fusionnée sur 3 colonnes c’est dans la balise <td> qu’il te faut mettre l’attribut colspan="3" comme dans cet exemple.
re-Bonjour Adrien881,
Merci de t'intéresser à mon problème. J'ai fait selon tes conseils et malheureusement la case de texte reste bloquée à 28 caractères ???
Voici mon nouveau code :
<tr><td><i>Description du matériau in situ : </i></td><td colspan=3><input type="text" name="materiau" value ="<?php echo $result['materiau'];?>"/></td></tr>


Je souhaiterais que cette zone de texte puisse s'adapter à la longueur du texte qui ici est très long, environ 4/5 lignes sur toute la largeur du tableau.

Lorsque j'ai fait mon formulaire d'insertion dans la bdd, il n'y avait aucun souci avec le code :
[code=html<textarea name="precisionEtage" rows="1" cols="28"></textarea>][/code]

Mais c'était textarea car la zone de texte était vide, à remplir. Ici puisqu'elle est pré-rempli il faut que j'utilise "input type="text" et c'est ça qui ne va pas ?

Merci si tu vois une solution. A +
Evelyne31
Pour régler la largeur d’un input tu peux utiliser l’attribut size.
<input type="text" name="materiau" value ="<?php echo $result['materiau'];?>" size="<?php echo strlen($result['materiau']);?>"/>
C'est presque ça adrien881 et je t'en remercie, je ne connaissais pas ce code. C'est super.
MAIS un dernier problème persiste : ma case texte est maintenant immense, elle ne fait qu'une seule ligne, il n'y a pas de retour à la ligne malgré des espaces entre les mots.
Est-ce insoluble ? Pourtant j'indique bien que c'est seulement sur 3 colonnes que je veux cette zone de texte ? De plus ma largeur de page est fixée à 900 pixels. Là maintenant elle fait environ 3 fois 900 px ???
Voici mon nouveau code :
<tr><td><i>Description du matériau in situ : </i></td><td colspan=3><input type="text" name="materiau" value ="<?php echo $result['materiau'];?>" size="<?php echo strlen($result['materiau']);?>"/></td></tr>

Une idée ?
Encore merci, à +
Evelyne31
adrien881,
Enfin, j'y suis arrivée en mettant une taille fixe "size ="200px". Tu m'as mise sur la bonne piste.
Je retiens également ton code pour mettre une zone de texte de la taille du résultat d'une variable.
Je vais enfin pouvoir avancer et je te remercie 1000 fois pour ton aide et ta compétence.
Très bonne fin de journée,
Evelyne31