Les formulaires :
Les formulaires sont un élément essentiel de la mise en place d'un backend et d'un CRUD (Create, Read, Update, Delete), et plus particulièrement pour les Create et l'Update.
La balise form :
La balise form posséde plusieurs attributs html parmi lesquels on peut noter :
- action : Cet attribut permet de cibler l'url d'un fichier qui aura en charge le traitement des données du formulaire.
- method : Cet attribut permet de spécifier la méthode qui sera utilisée pour envoyer les données vers le fichier de script qui traite les données du formulaire. Par défaut on utilise la méthode "POST", on peut également utiliser la méthode "GET" qui est moins sécuritaire dans la mesure ou les variables et leur valeur et passée via la barre d'adresse du navigateur.
- enctype : Cet attribut doit être ajouté lorsque le formulaire doit envoyer des fichiers joints, il prend alors la valeur "multipart/form-data".
Exemples :
Create :
En premier lieu on met en place un bouton "Nouveau" dans la page de la liste.
On met ensuite en place la page "ajouter-produit.php".
Le code ci-dessous met en place un formulaire contenant un fichier joint. Les données sont postées (method="POST") vers un fichier de traitement des "products".
<form action="core/admin-product.php" method="POST" enctype="multipart/form-data">
</form>
Les composants d'accès aux données :
Les composants d’accès aux données (formulaires) sont constitués de balises HTML (les différents champs du formulaire représentés par les balises input, textarea, select, etc.
Ci-dessous le formulaire permettant d'ajouter un produit
A noter dans ce code la présence du champ hidden qui détermine l'action que devra executer le fichier de traitement du formulaire, ainsi on peut utiliser le même fichier de traitement pour toutes les opération du CRUD.
On obtient le rendu suivant :
Update :
La mise à jour nécessite le même formulaire que celui d'ajout à la différence prêt qu'il est pré-rempli avec les données du produit que l'on souhaite modifier.
La première étape consiste donc à récupérer les données du produit que l'on souhaite modifier à l'aide d'une requête.
Pour mettre en place cela on va modifier le code dans le fichier d'include '_head.php' afin d'appeler la libririe d'icônes FontAwesome
On modifie également la page afficher-liste.php pour ajouter un bouton de modification devant chacun des produits listés dans la page.
<td>
<a href="modifier-produit.php?id=<?php echo $produit['id']; ?>" class="btn btn-success">
<i class="fa-solid fa-pen"></i>
</a>
</td>
On obtient le résultat suivant :
Lorsque l'on clique sur le bouton on peut voir le chemin dans la barre d'adresse et noter qu'une variable est transmise en GET.
On met en place le fichier modifier-produit.php et en se connectant à la base de données on récupère les données du produit pour pré-remplir le formulaire de modification.
On utilise la "clause" WHERE id = afin de récupérer spécifiquement les informations du produit que l'on souhaite modifier en utilisant la super variables $_GET qui permet de récupérer les variables passées en url.
On met en place le formulaire avec les valeurs dans les différents champs.
Le résultat :
La suite est le traitement du formulaire.