|
|
PRATIQUE PHP |
|
|
|
Prendre en compte les cases à cocher |
|
PHP permet de gérer facilement, au travers d'un tableau, les sélections multiples d'un formulaire HTML.
(18/04/2005) |
|
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Prendre en compte les cases à cocher PHP permet de gérer facilement,
au travers d'un tableau, les sélections multiples d'un formulaire
HTML. Lors de la création d'un formulaire traité par PHP, il
est tentant de n'utiliser que des boutons radio pour donner
un choix à l'utilisateur, car ceux-ci permettent de limiter
ce choix à une sélection, ce qui est donc plus facile à traiter
et à stocker dans une base de données.
Nombre
de formulaires en ligne pourraient cependant bénéficier des
cases à cocher, qui donne la possibilité à l'utilisateur de
choisir plus options. Le traitement n'est guère plus compliqué,
car comme souvent, PHP prend en charge le plus gros du travail.
En supposant qu'un champ de la table MySQL utilisée attende
au moins un élément parmi une liste (comme les genres d'un film
ou les goûts musicaux d'une personne), on peut indiquer cette
liste dans la base lors de la création de la table, au moyen
de l'instruction SET() :
CREATE TABLE utilisateur (
nom VARCHAR (30),
[...]
musique SET ("rock", "pop", "electro", "raggae", "classique",
"staracademy")
);
Le formulaire HTML prendrait en compte cette sélection multiple
:
Vos goûts musicaux :<br />
<input type="checkbox" name="musique[]" value="rock"
/>Rock<br />
<input type="checkbox" name="musique[]" value="pop"
/>Pop<br />
<input type="checkbox" name="musique[]" value="electro"
/>Electro <br />
<input type="checkbox" name="musique[]" value="raggae"
/>Raggae<br />
<input type="checkbox" name="musique[]" value="classique"
/>Classique<br />
<input type="checkbox" name="musique[]" value="staracademy"
/>Star Academy, LOL!
Notez que l'attribut name prend
la valeur "musique[]". Le serveur recevra donc, dans le cas
d'une sélection multiple, les données comme ceci :
...&musique[]=rock&musique[]=electro&...
On reconnaît dès lors la création d'un tableau musique dans
PHP, qui contiendrait les valeurs "rock" et "electro". Au script
ensuite de gérer ce tableau, en préparant ses données pour la
requête SQL :
$musique_sql = implode(', ',$_POST['musique']);
La requête SQL, enfin, peut se faire :
$req = "INSERT INTO utilisateur (nom,
prenom, musique, [...])
VALUES ('$nom', '$prenom', '$musique_sql', [...])";
|
|
|