Gestion des formulaires PHP : insertion de tableaux de cases à cocher et de zones de texte dans la base de données MySQL
En PHP, la gestion des soumissions de formulaires peut être difficile, en particulier lorsqu'il s'agit de plusieurs cases à cocher et zones de texte. Pour gérer efficacement les données de formulaire, explorons un problème courant et sa solution.
Problème : Affichage incorrect des valeurs de case à cocher et échec d'insertion de la base de données
Lorsque vous travaillez avec des tableaux de cases à cocher, il est essentiel de s'assurer que leurs valeurs représentent avec précision les entrées de l'utilisateur. Dans le code fourni, chaque case à cocher est affichée comme cochée, quel que soit son état réel. De plus, les données ne sont pas insérées dans la base de données comme prévu.
Solution : indexation de tableau et noms de cases à cocher indexés
Le problème survient en raison de l'utilisation d'implode , qui combine toutes les valeurs du formulaire dans une liste séparée par des virgules. Pour éviter cela, utilisez des index explicites dans les noms des cases à cocher. De cette façon, les indices du tableau correspondront aux indices d'article et de quantité.
Considérez le code HTML suivant :
<input type="checkbox" name="checkbox[0]" value="17" />
Maintenant, le tableau de cases à cocher aura des éléments indexés, permettant des données appropriées récupération.
Code PHP mis à jour
Dans le code PHP, remplacez l'utilisation de imploser avec accès au tableau indexé. De plus, utilisez une instruction préparée pour une insertion sécurisée dans la base de données. Voici une version améliorée :
$stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)"); $stmt->bind_param("sis", $name, $quantity, $price); foreach ($_POST['checkbox'] as $i => $price) { $name = $_POST['name'][$i]; $quantity = $_POST['quantity'][$i]; $stmt->execute(); }
En utilisant des noms de cases à cocher indexés et des instructions préparées, ce code révisé résout les problèmes et permet une gestion précise des données des cases à cocher et des zones de texte. N'oubliez pas de garantir l'intégrité des données en récupérant les prix de la base de données au lieu de vous fier aux valeurs HTML.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!