Comment ré afficher les données d'un formulaire

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.
Nous allons voir comment ré afficher les données saisies d'un formulaire suite à son envoie et ceci dans le but que l'utilisateur n'est pas besoin de tout recommencer si le formulaire est incomplet ou plante.
Le truc à retenir sur les formulaires c'est qu'ils possèdent tous l'attribut "name" (nom du formulaire) et c'est à partir de cet attribut et quand le formulaire est posté, que l'on peut récupérer les données par l'intermédiaire de la méthode "POST" (ou autres).
A partir de la, il suffit de tester l’existence de la variable $_POST['nom-du-formulaire'] puis de comparer pour ensuite ré afficher les données saisies par l'utilisateur.

Ré afficher les données d'un bouton radio.

<input type="radio" name="choix" value="Monsieur" id="Monsieur" <?php if (isset($_POST['choix']) && $_POST['choix']=="choix") echo 'checked="checked"';?> />

Ré afficher les données d'un bouton checkbox.

<input name="choix1" value="Salut" type="checkbox"  id="choix1" <?php if (isset($_POST['choix1']) && $_POST['choix1']=="Salut") echo 'checked="checked"';?> />
Dans le cas d'un bouton radio ou d'une checkbox, on utilise le code checked="checked" pour ré afficher l'élément coché.

Décortiquons le code de la checkbox :

name="choix1" correspond au nom de l'élément donc la checkbox se nomme "choix1".
value="Salut" correspond à la valeur de l'élément.
type="checkbox"  correspond au type d'élément utilisé, en l’occurrence une checkbox.
id="choix1" correspond à l'identifiant de la checkbox.

Décortiquons maintenant le code php :

if (isset($_POST['choix1'])  signifie : si la variable $_POST['choix1'] existe.
&& $_POST['choix1']=="Salut")  signifie : et que la variable "$_POST['choix1']" est strictement égal à "Salut".
echo 'checked="checked"' signifie : on ré affiche la case sélectionné.

Ré afficher les données d'un champ text.

<input type="text" size="40" name="nom" id="nom" value="<?php  if (!empty($_POST["nom"])) {  echo htmlspecialchars($_POST["nom"],ENT_QUOTES);  } ?>" />
Pour ré afficher les données d'un champ de type text, il faut au préalable vérifier si le champ n'est pas vide et si tel est le cas, ré afficher directement dans le champ "value" (valeur) ce qui a été saisie par l'utilisateur.
if (!empty($_POST["nom"])) signifie : si la variable $_POST["nom"] est différente de vide.
echo htmlspecialchars($_POST["nom"]) signifie : ré afficher la variable$_POST["nom"].
htmlspecialchars()  : transforme les balises HTML par des entités HTML.
ENT_QUOTES  : convertit les guillemets doubles et les guillemets simples.

Ré afficher les données d'une liste déroulante.

Pour ré afficher les données d'une liste déroulante on utilise le code selected="selected". Les valeurs de la liste déroulante se trouvent dans l'attribut "value" et comme pour les boutons radio ou checkbox, il faut vérifier l’existence de la variable, la comparer pour ensuite la ré afficher.
    <select name="pays">
    <option value="">Faites un choix</option>   
    <option value="France" <?php if (isset($_POST['pays']) && $_POST['pays']=="France") echo 'selected="selected"';?> />France</option>
    <option value="Belgique" <?php if (isset($_POST['pays']) && $_POST['pays']=="Belgique") echo 'selected="selected"';?> />Belgique</option>
    </select>

Ré afficher les données d'un champ textarea.

Pour ré afficher les données d'un champ textarea, c'est comme pour le champ de type "text" à la différence que le code se trouve à l'intérieure du textarea.
<textarea name="son_message" id="son_message" cols="80" rows="5"><?php
 if (isset($_POST["son_message"])) {
 echo htmlspecialchars($_POST["son_message"],ENT_QUOTES);
 }
?>
</textarea>
Voir/déposer un commentaire (0) | Signaler un problème