Logo

Documentation

/home/vhsh1501/documentation.benjamin-bruant.com/wp-content/themes/zetheme/single.phpsingle

PHP Forms : checkbox

Liens vers le code complet

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;
}