Formulaire HTML et traitement PHP

Ce document met en rapport

  • le code d'un formulaire HTML pour créer des champs de saisie ;
  • le code PHP pour récupérer les données ;

au moyen d'exemples commentés.

radio, versant HTML

Pour déclarer un bouton radio (exemple) :

<h4>Sexe</h4>
<p style="line-height:1.5">
<input name="sexe" value="h" checked="checked" type="radio">homme<br>
<input name="sexe" value="f" type="radio">femme
</p>

Commentaires HTML :

  • Le bouton s'appelle sexe. Il possède deux valeurs : h ou f.
  • Un bouton peut être présélectionné ; ici, h.
  • Le code HTML ci-dessus ne doit pas être copié, mais dactylographié, car les balises ont été neutralisées.

radio, versant PHP

Pour récupérer les données du bouton radio (vers le début du script) :

$sexe= $_POST['sexe'];
if ($sexe==='h'){

echo "Sexe: homme";

} elseif ($sexe==='f'){

echo "Sexe: femme";

}

Commentaires PHP :

  • $sexe prend l'une des deux valeurs : h ou f qui sont des chaînes de caractères.
  • la comparaison se fait avec trois signes d'égalité.

checkbox, versant HTML

Pour déclarer une série de checkbox (exemple) :

<p style="line-height:1.5;">
<input type="checkbox" name="todo[]" value="francais">Français<br>
<input type="checkbox" name="todo[]" value="maths" checked>Mathématiques<br>
<input type="checkbox" name="todo[]" value="anglais">Anglais<br>
<input type="checkbox" name="todo[]" value="economie" checked>Économie
</p>

Commentaires HTML :

  • Un même nom, ici todo[], est utilisé pour une série de checkbox distinguées par leurs valeurs. Le nom est suivi de crochets dont la fonction est déclarer que todo[] n'est pas une simple chaîne de caractères, mais une liste.
  • On peut déclarer que certaines cases sont initialement cochées ; ici, Mathématiques et Économie.
  • Le code HTML ci-dessus ne doit pas être copié, mais dactylographié, car les balises ont été neutralisées.

checkbox, versant PHP

Pour récupérer les données des cases à cocher (vers le début du script) :

if (is_array($_POST['todo'])){

$todo = $_POST['todo'];

} else {

$todo = array();

}

Pour traiter chaque case à cocher (au fil du script) :

if (in_array('francais', $todo)){

echo "Traitement du cas où la case francais est cochée";

} else {

echo "Traitement du cas où la case francais n'est pas cochée";

}

Commentaires PHP :

  • Dans le cas où une case au moins est cochée, $_POST['todo'] est une liste de valeurs.
  • Dans le cas où aucune case n'est cochée, $_POST['todo'] est remplacé par une liste vide.
  • Si la case Français est cochée, la valeur 'francais', sous la forme d'une chaîne de caractères, se trouve dans la liste $todo ; sinon, la valeur 'francais' est absente de la liste $todo.
  • L'appartenance d'une valeur à la liste $todo (ou sa non appartenance) permet de traiter chaque case à cocher.
Contact  |  Accueil   >   PHP