Facebook
Télécharger
Noter:

Ajouté le 2021-03-24
Visionné 3046 fois
5/5 (2)

Réafficher les champs du formulaire en PHP

Description

C'est frustrant de devoir remplir a nouveau un formulaire, par défaut, si il y a des erreurs, le formulaire se vide et vous devez tout retaper.

Pour afficher à nouveau les données saisies par l'utilisateur, la fonction suivante réaffichera le contenu des champs de type:

- <input type="text"> (champ texte)
- <input type="checkbox"> (case à cocher)
- <option> (select, liste déroulante)

Vous pouvez sélectionner des champs par défaut ou rentrer une valeur par défaut dans un champ text

//fonction pour les champs texte (type > text)
function raf($NomDuBouton,$TexteParDefaut='') {
return isset($_POST[$NomDuBouton]) ? htmlentities($_POST[$NomDuBouton],ENT_QUOTES,"UTF-8") : $TexteParDefaut;
}


//fonction pour les listes déroulantes (select > option)
function rafSelected($NomDuSelect,$SiLui,$ParDefaut='') {
return isset($_POST[$NomDuSelect]) ? ($_POST[$NomDuSelect] == $SiLui ? " selected=\"selected\"" : "") : ($ParDefaut == $SiLui ? " selected=\"selected\"" : "");
}


//fonction pour les cases à cocher (type > checkbox)
function rafCheckbox($name,$ParDefaut=null){
return isset($_POST[$name]) ? ' checked="checked"' : ($ParDefaut!=null?(empty($_POST)?' checked="checked"':''):'');//ici on utilise $_POST pour savoir si le formulaire à été envoyé, si il est envoyé, on affiche le choix de l'utilisateur et non plus le choix "par défaut"
//$_POST (array) liste les variables $_POST, donc si notre formulaire est envoyé, on devrait avoir du $_POST et donc il ne sera pas "empty"
}


//fonction pour les cases à cocher multiple choix (type > checkbox[])
function rafCheckboxListe($name,$value,$ParDefaut=null){
if(isset($_POST[$name])){
foreach($_POST[$name] as $values){
if($values==$value) return ' checked="checked"';
}
} else {
//si formulaire pas encore envoyé, on coche les "par défaut"
if(empty($_POST)){
return $ParDefaut!=null?' checked="checked"':'';
}
}
}
<form method="post">
<p>Nom:</p>
<input name="nom" type="text" value="<?php echo raf("nom"); ?>">
<p>Prénom:</p>
<input name="prenom" type="text" value="<?php echo raf("prenom","Une valeur par défaut"); ?>">
<p>Genre:</p>
<select name="genre">
<option value="homme"<?php echo rafSelected("genre","homme"); ?>>Homme</option>
<option value="femme"<?php echo rafSelected("genre","femme","femme"); ?>>Femme (ici par défaut pour l'exemple)</option>
</select>
<p>Centres d'intérêts:</p>
<input name="interets[]" type="checkbox" value="informatique"<?php echo rafCheckboxListe("interets","informatique",1); ?>> Informatique (par défaut)<br/>
<input name="interets[]" type="checkbox" value="musique"<?php echo rafCheckboxListe("interets","musique"); ?>> Musique<br/>
<input name="interets[]" type="checkbox" value="art"<?php echo rafCheckboxListe("interets","art"); ?>> Art<br/>
<input name="interets[]" type="checkbox" value="cinema"<?php echo rafCheckboxListe("interets","cinema"); ?>> Cinéma<br/>
<p>Recevoir la news:</p>
<input name="news" type="checkbox"<?php echo rafCheckbox("news",1); ?>> Oui, je veux la recevoir<br/>
<input type="submit">
</form>



Besoin d'un web développeur ?

Je suis disponible, contactez-moi !

Commentaires

Ajouter un commentaire

Commenter
Pseudo/Nom
Email
Message
Captcha
memo2
Commenter

Hervé le 10 Avril 2021 à 13:11

Simple mais efficace. Merci
Précision: utilisation uniquement sur champ texte dans mon cas.

Retour à la liste des scripts