44 Voix

PHP: Transférer Formulaire avec des nombreuses Cases à Cocher vers un Script confortablement

Conseil de Stefan Trost | 02/02/2023 à 23:05

Chaque fois que nous avons un formulaire avec un grand nombre de cases à cocher, la question se pose de savoir comment les évaluer au mieux en PHP après une entrée utilisateur. Enfin, il peut être très compliqué de nommer et lire chaque case individuellement afin d'obtenir la valeur de la case à cocher.

Dans cette astuce, je veux vous montrer comment maîtriser ce problème et comment définir les premières étapes pour une évaluation plus facile plus tard déjà dans le formulaire HTML.

Le Code HTML

Examinons d'abord le code HTML de notre formulaire :

<form method="post" action="script.php">
 <input type="hidden" name="formulaire_couleurs" value="1">
 <label><input type="checkbox" name="couleurs[]" value="vert">vert</label>
 <label><input type="checkbox" name="couleurs[]" value="bleu">bleu</label>
 <label><input type="checkbox" name="couleurs[]" value="rouge">rouge</label>
 <label><input type="checkbox" name="couleurs[]" value="noir">noir</label>
 <label><input type="checkbox" name="couleurs[]" value="blanc">blanc</label>
 <input type="submit" name="button_submit">
</form>

Notre formulaire se compose d'un bouton d'envoi et 5 cases à cocher avec lesquelles des noms de couleur peuvent être sélectionnés.

La particularité: Toutes les cases à cocher portent le même nom "couleurs[]". Cela permet que toutes les valeurs des cases à cocher soient envoyées au script PHP dans une seule variable. Nous obtenons le tableau / array "couleurs" et non plusieurs variables individuelles, comme ce serait le cas si nous donnions à chaque case à cocher un nom unique.

Si aucune case n'est cochée, le tableau est vide. Par conséquent, nous utilisons en plus un champ caché (ici avec le nom "formulaire_couleurs" dans la deuxième ligne), qui est envoyé dans tous les cas avec une valeur non vide afin de vérifier que le formulaire a bien été soumis.

Le Code PHP

Enfin, nous n'avons besoin que du code PHP pour obtenir les données :

if ($_POST["formulaire_couleurs"]) {
  $couleurs = $_POST["couleurs"];
   
  echo '<p>Les couleurs suivantes ont été choisies:</p>';
  echo '<p>';
  foreach ($couleurs as $valeur) {
    echo "$valeur <br>";
  }
  echo '</p>';
}

Dans la première ligne, nous vérifions d'abord si le formulaire a été soumis (notre champ caché existe). Si c'est le cas, nous produisons une liste des couleurs sélectionnées.

À cette fin, nous stockons le tableau du formulaire dans la variable $couleurs et nous utilisons foreach pour parcourir tout le tableau, afin que nous puissions echo les valeurs individuelles.

Les valeurs qui arrivent au script sont déterminées dans notre code HTML. Ce sont les valeurs écrites dans l'attribut "value" de la case à cocher sélectionnée. Bien sûr, vous pouvez également écrire des nombres ou tout autre mot dans la valeur.

RépondrePositifNégatifDateVoix
00 Voix

Cela fonctionne parfaitement.

Mais j'ai besoin d'un tableau de cases à cocher pour une liste d'options de contrat qu'un candidat choisit dans le cadre d'un formulaire de candidature qui m'est envoyé par e-mail.

Comment puis-je le faire envoyer les valeurs à ma boîte aux lettres?
25/02/2022 à 17:16

RépondrePositif Négatif
22 Voix

Le moyen le plus simple consiste à stocker les valeurs dans une chaîne / strimg au lieu de leur faire écho.

Donc, dans la boucle, utilisez quelque chose comme:

$msg += $value;

Après cela, vous pouvez envoyer les valeurs par e-mail via la fonction de messagerie PHP:

mail('mail@example.com', 'Sujet', $msg);

Vous n'avez rien d'autre à changer.
25/02/2022 à 21:12

Positif Négatif
Répondre
Répondre

Sur l’Auteur

AvatarVous pouvez trouver des logiciels de Stefan Trost sur fr.sttmedia.com. Avez-vous besoin d'un logiciel personnalisé selon vos propres besoins? Écrivez-nous: fr.sttmedia.com/contact
Voir Profil

 

Sujets Connexes

VirtualBox: Changer la Date et l'Heure

Tutoriel | 10 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.