PHP Forms : checkbox
Liens vers le code complet
En haut de page implémentation des tableaux de données fournies à l’utilisateur :
<?php
$parfums = [
"Fraise"=> 4,
"Chocolat" => 5,
"Vanille" => 3
];
$cornets =[
"Pot" => 2,
"Cornet" => 3
];
$supplements = [
"Pépites de chocolat" => 1,
"Chantilly" => 0.5
];
$title = "Composez votre glace"; // variable pour un <title> dynamique
require 'header.php'; // requête du header qui contient lui-même la requête de functions.php
?>
Déploiement du formulaire de choix des données :
<h1>Composez votre glace</h1>
<form action="/glaces.php" method="GET">
<?php foreach($parfums as $parfum => $prix) : ?>
<div class="checkbox">
<label for="">
<?= checkbox('parfum', $parfum, $_GET) ?> // fonction checkbox() dans functions.php
<?= $parfum ?> - <?= $prix ?>€
</label>
</div>
<?php endforeach?>
<button type="submit" class="btn btn-primary">Composer ma glace</button>
</form>
<?php require 'footer.php'; ?>
Affichage didactique du contenu de la variable $_GETreliées à la methode homonyme : method="GET" :
<h2>$_GET</h2>
<pre>
<?php var_dump($_GET)
?>
</pre>
$_GET
array(3)
{
["parfum"]=>
array(2)
{
[0]=>
string(6) "Fraise"
[1]=>
string(8) "Chocolat"
}
["cornet"]=>
string(6) "Cornet"
["supplement"]=>
array(2)
{
[0]=>
string(20) "Pépites de chocolat"
[1]=>
string(9) "Chantilly"
}
}
fonction checkbox()dans functions.php :
<?php
function checkbox (string $name, string $value, array $data) {
$attributes = '';
if (isset($data[$name]) && in_array($value,$data[$name] )){
$attributes .= 'checked';
}
return <<<HTML
<input type="checkbox" name="{$name}[]" value="$value" $attributes>
HTML;
}