Utiliser des tableaux de contrôles
dans des formulaires HTML
Réponse AJAX

Introduction

Ce TP sert à mettre en pratique les tableaux de contrôles HTML. Par exemple :
<input type=checkbox name=categorie[1]>
<input type=checkbox name=categorie[2]>
<input type=checkbox name=categorie[3]>

C'est utile lorsqu'on a un formulaire qui traite à la fois plusieurs articles, plusieurs catégories, plusieurs utilisateurs, par exemple :

Ce TP porte sur un petit échantillon de séries télé (Game Of Thrones, Breaking Bad, etc.), qu'on va associer à plusieurs styles (fantastique, drame, action, etc.).

La base de données est ici et est à importer dans votre phpMyAdmin.

Importez la base de données dans votre phpMyAdmin.

La programmation PHP

Affichage de la liste des séries avec un lien vers l'édition

Collez ici (après l'avoir testé) le code PHP qui affiche la liste des séries. Comme il y en a peu, il est inutile de faire un outil de recherche.

Le titre de la série (ou un icône à côté), doit comporter un lien hypertexte qui amène à la page d'édition de la série (qui sera demandée plus bas dans ceTP).

Vous pouvez afficher les photos des séries avec <img src=http://spastore.bts-sio.com/photos_series/ser_id.jpg> (où ser_id est l'identifiant de la série)

Votre réponse n°1

Affichage du formulaire d'édition

Collez ici (après l'avoir testé) le code PHP qui affiche le formulaire d'édition d'une série.

Ce formulaire contient le titre de la série (éventuellement éditable, mais ce n'est pas le plus important dans ce TP).

Le formulaire affiche également la liste de toutes les styles (drame, action, etc.), accompagnés d'une case à cocher. Le but est de pouvoir assigner la série à plusieurs styles. Les cases à cocher sont un tableau de contrôles et sont donc de la forme :

<input type=checkbox name=tab_styles[sty_id]> (où sty_id est l'identifiant du style)

ou, si vous préférez :

<input type=checkbox name=tab_styles[] value=sty_id> (où sty_id est l'identifiant du style)

(selon si vous préférez récupérer les identifiants des styles en clés du tableau ou en valeur du tableau).

Votre réponse n°2

Traitement du formulaire d'édition

Collez ici (après l'avoir testé) le code PHP qui effectue le traitement du formulaire d'édition d'une série.

Ce code PHP doit affecter à la série toutes les catégories qui ont été cochées. Si vous ne devinez pas la structure du $_POST lorsque le formulaire est posté, faites un var_dump($_POST) pour comprendre son contenu. Pour vous mettre sur la voie : il faudra parcourir $_POST['tab_styles'] avec un foreach.

Votre réponse n°3

Précocher les cases à cocher

Lorsqu'on arrive sur le formulaire d'édition d'une série, on souhaite que les styles auxquels appartient la série soient pré-cochés. Il faut ajouter l'attribut checked aux cases à cocher.

Si vous n'avez pas pensé à précocher les styles à l'étape précédente, alors adaptez votre code et collez-le ici (après l'avoir testé). Sinon répondez simplement "C'est fait".

Votre réponse n°4

Désassociation des styles décochés

Lorsqu'on décoche un style dans le formulaire d'édition (pour désassocier la série à ce style), avez-vous fait la requête SQL DELETE qui permet de gérer ça ?

Si vous ne l'avez pas fait à l'étape précédente, alors adaptez votre code et collez-le ici (après l'avoir testé). Sinon répondez simplement "C'est fait".

Votre réponse n°5

Remplissage de la base

Pour tester l'ensemble, vous pouvez associez des séries et leur style en vous inspirant par exemple du site senscritique.com.