Introduction aux formulaires
Le formulaire est la pierre angulaire de tout site web interactif. Sans les formulaires, un site web serait cantonné à un simple amas de liens hypertexte sans autre forme d'interactivité.
L'élément FORM
C'est le but d'un site web: pouvoir traiter des données et restituer des résultats de traitement sur ces données. On distinguera:
- les données issues d'une base de données sans passer par un formulaire. Exemple, sur un forum, afficher la liste des derniers messages enregistrés;
- les données issues d'un traitement de données saisies par l'utilisateur.
Cette interactivité issue des données saisies par l'utilisateur s'appuie sur
l'élément form:
<form method='POST'> ...ici la description des champs de saisie... </form>
Ici notre élément form a comme attribut method avec
la valeur POST. Il n'existe que deux valeurs possibles pour cet
attribut: POST et GET.
Préférez l'attribut POST qui est celui généralement employé pour la très grande majorité des formulaires.
Les champs de saisie
Notre élément form encadre les champs de saisie, ici un champ
input:
<form method='POST'> <p>votre age:<input type='text' name='age'/></p> </form>
L'élément input indique que le formulaire doit contenir un champ
de saisie de type texte. Ce champ est nommé avec l'atrribut name
avec la valeur age
Notre formulaire ne serait pas complet sans un bouton à cliquer pour indiquer que la saisie est complète:
<form method='POST'> <p>votre age:<input type='text' name='age'/></p> <p><input type='submit' value='envoyer'/></p> </form>
Le bouton permettant d'envoyer les données vers le serveur est indiqué
par l'élément input et l'attribut type
avec la valeur submit.
Voici à quoi ressemble notre formulaire très simple:
votre age:
Soumission des données du formulaire
Les données saisies dans un formulaire doivent être transmises à un script.
Pour ce faire, on va rajouter l'attribut action à form:
<form method="POST" action="aficheAge.php"> <p>votre age:<input type='text' name='age'/></p> <p><input type='submit' value='envoyer'/></p> </form>
Ici, le contenu de l'attribut action est tout à fait semblable
à un lien hypertexte effectué au travers de l'élément a
et son attribut href. Pour l'élément form, dès
que le formulaire est soumis, on passe le traitement au script indiqué
comme paramètre de l'attribut action, ici le script afficheAge.php.
Que se passe-t-il quand on soumet le formulaire?
Contrairement à un lien hypertexte réalisé par l'élément a,
la soumission du formulaire transmet également un en-tête transmis en méthode
POST et cet en-tête contient les données du formulaire.
Traitement des données du formulaire
Pour un formulaire utilisant la méthode POST, les données sont récupérées au travers d'une variable globale $_POST. C'est un tableau indexé qui répertorie toutes les valeurs du formulaire de départ.
Dans notre formulaire en exemple ci-avant, nous avons défini un champ nommé age. Dans le script qui va traiter le contenu du formulaire, on va retrouver cette donnée age dans $_POST['age'].
Rajoutons un champ de saisie nommé taille
<form method="POST" action="aficheAge.php"> <p>votre age:<input type='text' name='age'/></p> <p>votre taill:<input type='text' name='taille'/> en cm</p> <p><input type='submit' value='envoyer'/></p> </form>
Du coté du script chargé de traiter les données transmises par le formulaire, nous avons maintenant la donnée taille dans $_POST['taille']
.En fait, pour savoir ce que le formulaire a transmis, nous pouvons utiliser
print_r en début de script pendant la phase de mise au point:
<?php print_r($_POST);
Ceci vous permettra de visualiser le contenu des données du formulaire reçues par votre script de traitement des données.
Pour tous ceux qui maîtrisent déja les formulaires, cette introduction a
pu leur sembler inutile. Aussi nous allons maintenant entrer dans le vif du sujet:
le formulaire de base avec Zend Framework