Logo

Documentation

page

PHP tutoriel

Code complet

Fichier glaces.php:

<?php
$parfums = [
    "Fraise" => 4,
    "Chocolat" => 5,
    "Vanille" => 3
];
$cornets = [
    "Pot" => 2,
    "Cornet" => 3
];
$supplements = [
    "Pépites de chocolat" => 1,
    "Chantilly" => 0.5,
    "Éclats de noisettes"=> 1
];
$title = "Composez votre glace";
/*  */
$ingredients = [];
$total = 0;
require 'header.php';
?>
<h1>Composez votre glace</h1>
<div class="row">
    <div class="col-md-4">
        <div class="card">
            <div class="card-body">
                <h5 class="card-title">Votre glace</h5>
                <ul>
                    <li></li>
                </ul>
            </div>
        </div>
    </div>
</div>
<div class="col-md-8">
    <form action="/glaces.php" method="GET">
        <h2>Choisissez vos parfums</h2>
        <?php foreach ($parfums as $parfum => $prix) : ?>
            <div class="checkbox">
                <label for="">
                    <?= checkbox('parfum', $parfum, $_GET) ?>
                    <?= $parfum ?> - <?= $prix ?>€
                </label>
            </div>
        <?php endforeach ?>
        <h2>Choisissez votre cornet</h2>

        <?php foreach ($cornets as $cornet => $prix) : ?>
            <div class="checkbox">
                <label for="">
                    <?= radio('cornet', $cornet, $_GET) ?>
                    <?= $cornet ?> - <?= $prix ?>€
                </label>
            </div>
        <?php endforeach ?>
        <h2>Choisissez vos suppléments</h2>

        <?php foreach ($supplements as $supplement => $prix) : ?>
            <div class="checkbox">
                <label for="">
                    <?= checkbox('supplement', $supplement, $_GET) ?>
                    <?= $supplement ?> - <?= $prix ?>€
                </label>
            </div>
        <?php endforeach ?>
        <button type="submit" class="btn btn-primary">Composer ma glace</button>
    </form>
</div>
<?php require 'footer.php'; ?>
<h2>$_GET</h2>
<pre>
    <?php var_dump($_GET)
    ?>
</pre>
<h2>$_POST</h2>
<pre>
    <?php var_dump($_POST)
    ?>
</pre>

Fichier functions.php:

<?php
function nav_item (string $lien, string $titre, string $linkClass) 
{
  $classe = 'nav-item';
  if ($_SERVER['SCRIPT_NAME'] === $lien) {
    $classe .= ' active';
  }
  return <<<HTML
  <li class="$classe">
          <a class="$linkClass" href="$lien"> $titre </a>
        </li>
HTML;
}
function nav_menu (string $linkClass = '') {
    return
    nav_item('/index.php','Accueil', $linkClass) .
    nav_item( '/contact.php','Contact', $linkClass) .
    nav_item( '/jeu.php','Jeu', $linkClass) .
    nav_item( '/glaces.php','Glaces', $linkClass);
}

function message(array $array, int $index, string $classes) {
    echo "<div class='$classes'>$array[$index]</div>";
}
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;
}
function radio(string $name,string $value,array $data){
  $attributes = '';
  if (isset($data[$name]) && $value===[$name]){
    $attributes .= 'checked';
  }
  return <<<HTML
  <input type="radio" name="{$name}" value="$value" $attributes>
HTML;
}