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', [...])";
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page