HTML • Page 3 / formulaires & tableaux

Formulaires et tableaux : interagir et organiser des données

Ici tu vas apprendre à créer des formulaires (champs à remplir, boutons) et des tableaux pour présenter des données. À la fin : mini-projet “page de contact”.

1. La balise <form> : le début d’un formulaire

Un formulaire permet à l’utilisateur d’entrer des informations : pseudo, email, mot de passe, message, etc.

On le crée avec la balise <form> ... </form> :

<form action="/traitement" method="post">
  <!-- Champs du formulaire ici -->
</form>
Pour l’instant, tu peux laisser action="#" juste pour tester le formulaire sans envoi réel.

Quel élément entoure tout le contenu d’un formulaire HTML ?

2. Les champs de formulaire : <label> et <input>

Associer un texte à un champ

On utilise <label> pour le texte du champ, et <input> pour la zone de saisie.

<form action="#" method="post">
  <label for="pseudo">Pseudo :</label>
  <input type="text" id="pseudo" name="pseudo">

  <br>

  <label for="email">Email :</label>
  <input type="email" id="email" name="email">
</form>
  • for dans <label> doit être égal à l’id de l’input.
  • Clique sur le texte du label → le curseur va dans le champ.

Différents types de <input>

  • type="text" : texte normal
  • type="email" : email (avec vérification basique)
  • type="password" : mot de passe (masqué)
  • type="checkbox" : case à cocher
  • type="radio" : bouton radio (choix unique)
  • type="submit" : bouton pour envoyer le formulaire
<input type="password" name="mdp">
<input type="submit" value="Envoyer">

Exercice : comment s’appelle la balise qui sert à afficher un texte descriptif pour un champ (ex : “Email :” avant l’input) ?

3. Zones de texte longues, listes déroulantes, choix

Zone de texte longue : <textarea>

<label for="message">Message :</label>
<textarea id="message" name="message" rows="4" cols="40">
Écris ton message ici...
</textarea>

Attributs utiles :

  • rows : nombre de lignes visibles.
  • cols : largeur approximative en caractères.

Liste déroulante : <select> + <option>

<label for="sujet">Sujet :</label>
<select id="sujet" name="sujet">
  <option value="question">Question</option>
  <option value="bug">Bug</option>
  <option value="autre">Autre</option>
</select>

Choix unique ou multiple : radio / checkbox

<p>Comment as-tu connu le site ?</p>

<label>
  <input type="radio" name="origine" value="ami">
  Un ami
</label>

<label>
  <input type="radio" name="origine" value="google">
  Google
</label>

<p>Qu’aimes-tu ? (plusieurs choix)</p>

<label>
  <input type="checkbox" name="gouts" value="html">
  HTML
</label>

<label>
  <input type="checkbox" name="gouts" value="css">
  CSS
</label>

Quel élément utilise-t-on pour une zone de texte sur plusieurs lignes ?

4. Tableaux HTML : <table>, <tr>, <th>, <td>

Les tableaux servent à afficher des données organisées (horaires, scores, prix…), pas pour mettre en page tout un site.

<table>
  <thead>
    <tr>
      <th>Nom</th>
      <th>Score</th>
      <th>Pays</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>Alice</td>
      <td>1200</td>
      <td>France</td>
    </tr>
    <tr>
      <td>Bob</td>
      <td>900</td>
      <td>Belgique</td>
    </tr>
  </tbody>
</table>

Rendu de l’exemple ci-dessus :

Nom Score Pays
Alice 1200 France
Bob 900 Belgique

Quelle balise sert à créer une ligne dans un tableau ?

5. Mini-projet : une page de contact simple

Maintenant, crée un fichier contact.html avec : un titre, un formulaire de contact et un petit tableau des horaires.

<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="UTF-8">
    <title>Contact</title>
  </head>
  <body>
    <h1>Contact</h1>

    <h2>Formulaire de contact</h2>
    <form action="#" method="post">
      <label for="nom">Nom :</label>
      <input type="text" id="nom" name="nom" required>
      <br>

      <label for="email">Email :</label>
      <input type="email" id="email" name="email" required>
      <br>

      <label for="sujet">Sujet :</label>
      <select id="sujet" name="sujet">
        <option value="question">Question</option>
        <option value="bug">Bug</option>
        <option value="autre">Autre</option>
      </select>
      <br>

      <label for="message">Message :</label>
      <br>
      <textarea id="message" name="message" rows="4" cols="40"></textarea>
      <br>

      <button type="submit">Envoyer</button>
    </form>

    <h2>Horaires</h2>
    <table>
      <thead>
        <tr>
          <th>Jour</th>
          <th>Matin</th>
          <th>Après-midi</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>Lundi</td>
          <td>9h - 12h</td>
          <td>14h - 18h</td>
        </tr>
        <tr>
          <td>Mardi</td>
          <td>9h - 12h</td>
          <td>14h - 18h</td>
        </tr>
      </tbody>
    </table>
  </body>
</html>
Tu peux relier cette page à ton site avec un lien : <a href="contact.html">Contact</a> (par exemple dans ton menu ou en bas de la page).