PHP : Exercice pratique sur les formulaires

 

Exercice : Ecrire un programme PHp qui permet d'utiliser un formulaire pour faire la saisie Les éléments d'un tableau multidimensionnel des étudiants qui porte les informations :  Nom,Note1,Note2 et Note3 et qui enfin affiche la moyenne des 3 notes pour chaque ligne : 

 

Solution :

<?php
echo '<meta charset="utf-8" />';

session_start();

// Initialiser la liste si elle n'existe pas
if (!isset($_SESSION['etudiants'])) {
    $_SESSION['etudiants'] = [];
}

// Ajouter un étudiant
if (isset($_POST['ajouter'])) {
    $nom = $_POST['nom'];
    $note1 = floatval($_POST['note1']);
    $note2 = floatval($_POST['note2']);
    $note3 = floatval($_POST['note3']);

    $_SESSION['etudiants'][] = [
        'nom' => $nom,
        'note1' => $note1,
        'note2' => $note2,
        'note3' => $note3,
    ];
}

// Réinitialiser la session
if (isset($_POST['reset'])) {
    session_destroy();
    header("Location: " . $_SERVER['PHP_SELF']);
    exit;
}
?>

<h2>Saisie des notes :</h2>
<form method="post">
    <label>Nom :</label>
    <input type="text" name="nom" required><br>

    <label>Note 1 :</label>
    <input type="number" name="note1" step="0.01" required><br>

    <label>Note 2 :</label>
    <input type="number" name="note2" step="0.01" required><br>

    <label>Note 3 :</label>
    <input type="number" name="note3" step="0.01" required><br><br>

    <button type="submit" name="ajouter">Ajouter</button>
    <button type="submit" name="reset">Réinitialiser</button>
</form>

<?php if (!empty($_SESSION['etudiants'])): ?>
    <h2>Liste des étudiants et moyennes :</h2>
    <table border="1" cellpadding="5">
        <tr>
            <th>Nom</th>
            <th>Note 1</th>
            <th>Note 2</th>
            <th>Note 3</th>
            <th>Moyenne</th>
        </tr>
        <?php foreach ($_SESSION['etudiants'] as $e): ?>
            <tr>
                <td><?= htmlspecialchars($e['nom']) ?></td>
                <td><?= $e['note1'] ?></td>
                <td><?= $e['note2'] ?></td>
                <td><?= $e['note3'] ?></td>
                <td><strong><?= round(($e['note1'] + $e['note2'] + $e['note3']) / 3, 2) ?></strong></td>
            </tr>
        <?php endforeach; ?>
    </table>
<?php endif; ?>

Enregistrer un commentaire

Plus récente Plus ancienne