Formulaire : retourner des données
Les erreurs de saisie au niveau du formulaire doivent être signalées à l’internaute et vous devez retourner les valeurs saisies qui sont correctes.
Il faut donc infiltrer du code PHP dans la structure HTML du formulaire pour retourner les données récupérées qui sont correctes et afficher les messages d’erreur. L’instruction echo sera utiliser pour afficher les retours.
Champ de texte
S’il s’agit d’un champ de texte simple, la retour de la saisie se fait grâce à l’attribut value dont la valeur sera générée dynamiquement par PHP. Le contenu généré correspond à la valeur retourné par la méthode POST.
Récupération de la valeur saisie en PHP :
<?php
$pseudo = "";
if(isset($_POST['envoi'])){ // si formulaire soumis
$pseudo = $_POST['pseudo'];
}
?>
Retour de la valeur saisie en HTML :
<form action="retourner-donnees-formulaire.php" method="post">
Pseudo : <input type="text" name="pseudo" value="<?php echo $pseudo; ?>" />
</form>
Zone de tetxe
S’il s’agit d’une zone de texte, PHP retournera la saisie entre les balises <textarea>.
Récupération de la valeur saisie en PHP :
<?php
$message = "";
if(isset($_POST['envoi'])){ // si formulaire soumis
$message = $_POST['message'];
}
?>
Retour de la valeur saisie en HTML :
<form action="retourner-donnees-formulaire.php" method="post">
Message : <textarea name="message"> <?php echo $message; ?> </textarea>
</form>
Case à cocher
S’il s’agit d’une case à cocher qui a été cochée, la technique consiste à utiliser en HTML l’attribut checked.
Récupération de l’information en PHP :
<?php
$coche = "";
if(isset($_POST['envoi'])){ // si formulaire soumis
if(isset($_POST['coche'])){
$coche = "checked";
}
}
?>
Retour de la réponse en HTML :
<form action="retourner-donnees-formulaire.php" method="post">
Je veux recevoir des offres : <input type="checkbox" name="coche" <?php echo $coche; ?> />
</form>
S’il s’agit de plusieurs cases à cocher qui ont été cochées, nous savons qu’avec la méthode POST, PHP récupère un tableau des valeurs cochées.
La technique consiste à vérifier pour chaque case à cocher si sa valeur est présente dans le tableau et d’y rajouter dans ce cas l’attribut HTMl checked. Pour vérifier la présence d’une valeur dans un tableau, il faut utiliser la fonction in_array().
Récupération de l’information en PHP :
<?php
$choix = "";
$choix1 = "";
$choix2 = "";
$choix3 = "";
if(isset($_POST['envoi'])){ // si formulaire soumis
if(isset($_POST['choix'])){
$tab = $_POST['choix'];
$choix1 = in_array("danse",$tab) ? "checked" : "" ;
$choix2 = in_array("cinema",$tab) ? "checked" : "" ;
$choix3 = in_array("ballade",$tab) ? "checked" : "" ;
}
}
?>
Retour des choix en HTML :
<form action="retourner-donnees-formulaire.php" method="post"> <br>
Loisirs : <br>
<input type="checkbox" name="choix[]" value="danse" <?php echo $choix1; ?> /> danse <br>
<input type="checkbox" name="choix[]" value="cinema" <?php echo $choix2; ?> /> cinema <br>
<input type="checkbox" name="choix[]" value="ballade" <?php echo $choix3; ?> /> ballade <br>
<input type="submit" name="envoi" /><br>
</form>
Bouton radio
S’il s’agit d’un groupe de bouton radio, PHP ne récupère qu’une seule valeur avec la méthode POST. La technique consiste à vérifier pour chaque bouton radio si sa valeur est la même que celle récupérée par PHP et dans ce cas rajouter l’attribut checked.
Récupération de l’information en PHP :
<?php
$genre = "";
$genre1 = "";
$genre2 = "";
if(isset($_POST['envoi'])){ // si formulaire soumis
if(isset($_POST['genre'])){
$recup = $_POST['genre'];
$genre1 = $recup == "h" ? "checked" : "" ;
$genre2 = $recup == "f" ? "checked" : "" ;
}
}
?>
Retour du choix en HTML :
<form action="retourner-donnees-formulaire.php" method="post"> <br>
Genre : <br>
<input type="radio" name="genre" value="h" <?php echo $genre1; ?> /> H <br>
<input type="radio" name="genre" value="f" <?php echo $genre2; ?> /> F <br>
<input type="submit" name="envoi" /><br>
</form>
Liste déroulante
Pour retourner une sélection de liste, on peut utiliser la technique qui consiste à vérifier pour chaque option si sa valeur est la même que celle récupérée par la méthode POST et si c’est le cas, lui rajouter l’attribut selected.
Récupération de l’information en PHP :
$legume = "";
$opt1 = "";
$opt2 = "";
$opt3 = "";
if(isset($_POST['envoi'])){ // si formulaire soumis
if(isset($_POST['legume'])){
$recup = $_POST['legume'];
$opt1 = $recup == "haricot" ? "selected" : "" ;
$opt2 = $recup == "poireau" ? "selected" : "" ;
$opt3 = $recup == "carotte" ? "selected" : "" ;
}
}
Affichage de l’option sélectionnée:
<form action="retourner-donnees-formulaire.php" method="post">
<select name="legume">
<option value="haricot" <?php echo $opt1; ?> >Haricot</option>
<option value="poireau" <?php echo $opt2; ?> >Poireau</option>
<option value="carotte" <?php echo $opt3; ?> >Carotte</option>
</select>
<input type="submit" name="envoi" />
</form>