Cours n°3 Les formulaires Php Cours n°3 Les formulaires
Les formulaires Saisie dynamique d’information Traitement adapté Enregistrement d’information Sélection de l’information en fonction des besoins
1. Saisie d’information Formulaire HTML pour recueillir les informations de l’utilisateur
Saisie d’information : HTML <form name="saisie" action="script.php" method="get"> Votre nom : <input type="text" name="nom"/> Votre âge : <input type="text" name="age"/> <input type="submit" name="OK" value="OK"/> </form> <FORM> a trois attributs principaux : name : le nom de l'objet formulaire action : l'url du script à activer method : le mode de transmission des données au script : GET ou POST Par défaut, la méthode GET est utilisée
Saisie d’information : HTML <form name="saisie" action="script.php" method="get"> Votre nom : <input type="text" name="nom"/> Votre âge : <input type="text" name="age"/> <input type="submit" name="OK" value="OK"/> </form> Un champ de formulaire est composé de : Un type Un nom : attribut name Une valeur : saisie par utilisateur / attribut value
2. Transmission Transmettre les valeurs saisies par l’utilisateur pour en faire un traitement
Transmission Transmission à un script par une méthode <form name="saisie" action="script.php" method="get"> Votre nom : <input type="text" name="nom"/> Votre âge : <input type="text" name="age"/> <input type="submit" name="OK" value="OK"/> </form> Transmission à un script par une méthode GET : transmet les paramètres dans l’URL de façon visible POST : transmet les paramètres de façon cachée (dans l’en-tête HTTP)
Transmission Ces méthodes sont en fait des variables globales ou tableaux super-globaux <form name="saisie" action="script.php" method="get"> Votre nom : <input type="text" name="nom"/> Votre âge : <input type="text" name="age"/> <input type="submit" name="OK" value="OK"/> </form> Pour récupérer la valeur d’un champ : $valeur = $_POST[‘name’]; <?php $nom_user = $_GET[‘nom’]; $prenom_user = $_GET[‘prenom’]; ?>
Les champs texte Valeur : saisie par l’utilisateur input text : $_GET[‘nom’]; textarea : $_GET[‘avis’]; <form name="saisie" action="script.php" method="get"> Votre nom : <input type="text" name="nom"/> Votre avis : <textarea name="avis" ></textarea> <input type="submit" name="OK" value="OK"/> </form>
Boutons radio Valeur : attribut value de la case cochée Un seul coché à la fois : tous les boutons ont le même name <form name="saisie" action="script.php" method="get"> <input type="radio" name="genre" value="Femme"/> une femme <input type="radio" name="genre" value="Homme"/> un homme <input type="submit" name="OK" value="OK"/> </form> Remarque : les boutons radio , un seul coché à la fois !! <?php //si j’ai coché une femme, $genre_user ="Femme" $genre_user=$_GET[‘genre’]; ?>
Cases à cocher Un ensemble de cases à cocher ayant le même name sont en fait un tableau simple Valeur : sont ajoutées dans le tableau les valeurs des seules cases cochées <form name="saisie" action="script.php" method="get"> Sport <input type="checkbox" name="loisirs[]" value="sport" /> Théâtre <input type="checkbox" name="loisirs[]" value="theatre" /> Cinéma <input type="checkbox" name="loisirs[]" value="cinema" /> <input type="submit" name="OK" value="OK"/> </form>
Cases à cocher Les valeurs sont enregistrées dans un tableau On peut faire des tableaux de tableaux ! $tab_loisirs = $_GET[‘loisirs’]; Donc faire un parcours de tableaux <?php //Le tableau $_GET contient le tableau loisirs[] $loisirs = $_GET["loisirs"]; for ($i=0; $i<count($loisirs); $i++) { echo $loisirs[$i]; } ?>
Listes déroulantes Normalement, une seule valeur sélectionnée Valeur : attribut value sélectionné <form name="saisie" action="script.php" method="get"> <select name="choix"> <option value="choix1">Choix 1</option> <option value="choix2">Choix 2</option> <option value="choix3">Choix 3</option> </select> <input type="submit" name="OK" value="OK"/> </form> <?php $choix_user = $_GET["choix"]; ?>
3. Traitement Maintenant que nous avons récupérer les données, quels traitement ?
Traitement des données Le script reçoit les données en GET/POST Vérifier la validité des données S'il y a des erreurs dans les données Afficher un message d'erreur (explicite!) Sinon s'il n'y a pas d'erreur dans les données Effectuer le traitement demandé Afficher un message de confirmation
Traitement des données Erreurs : Champs vides empty($variable) teste si la variable est vide isset($variable) teste si la variable existe Suite de caractères attendue (selon un pattern) Expressions régulières Longueur d’une chaîne (voir le manuel PhP) Traitements : Calculs Construction de réponse Enregistrement