Refactor contact controller and views for improved functionality and user experience

This commit is contained in:
Noah 2026-06-08 15:06:32 +02:00
parent 600e7bce82
commit 986356d5ba
5 changed files with 77 additions and 91 deletions

View file

@ -1,8 +1,5 @@
<?php <?php
/**
* Switch to the appropriate controller according to HTTP method
*/
function contact_ctrl() { function contact_ctrl() {
if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($_SERVER['REQUEST_METHOD'] == 'POST') {
contact_write_ctrl(); contact_write_ctrl();
@ -11,42 +8,35 @@ function contact_ctrl() {
} }
} }
/**
* Form display
*/
function contact_form_ctrl() { function contact_form_ctrl() {
// Print form require('views/contact_views.php');
require('views/contact_form_view.php');
} }
/**
* Form processing
*/
function contact_write_ctrl() { function contact_write_ctrl() {
// On récupère les données du formulaire
$nom = $_POST['nom']; $nom = $_POST['nom'];
$prenom = $_POST['prenom']; $prenom = $_POST['prenom'];
$dep = $_POST['dep']; $dep = $_POST['dep'];
$spe = $_POST['spe']; $spe = $_POST['spe'];
$tel = $_POST['tel']; $tel = $_POST['tel'];
$date = $_POST['ladate_lheure']; $date = $_POST['ladate'];
$heure = $_POST['lheure'];
// Combine date + heure en DateTime
$date_heure = $date . ' ' . $heure . ':00';
// On peut ajouter une petite validation simple
if (empty($nom) || empty($prenom) || empty($tel)) { if (empty($nom) || empty($prenom) || empty($tel)) {
echo "Veuillez remplir tous les champs obligatoires !"; $_SESSION['notification'] = 'Veuillez remplir tous les champs obligatoires.';
require('views/contact_views.php');
return; return;
} }
// Connexion à la base
require('models/connection.php'); require('models/connection.php');
$c = connection(); $c = connection();
// Création de la personne
require('models/contact_crud.php'); require('models/contact_crud.php');
create_personne($spe, $nom, $prenom, $dep,$tel, $date_heure, $c);
// Affichage de la page de confirmation create_sauveteur($c, $nom, $prenom, $dep, $spe, $date_heure, $tel);
require('views/welcome_view.php');
$_SESSION['notification'] = 'Sauveteur ajouté avec succès.';
header('Location: index.php?route=ajout_personnes');
exit;
} }

View file

@ -65,6 +65,11 @@
modif_utilisateurs_write_ctrl(); modif_utilisateurs_write_ctrl();
break; break;
case 'ajout_personnes':
require('controllers/contact_crtl.php');
contact_ctrl();
break;
case 'operations': case 'operations':
require('controllers/operation_ctrl.php'); require('controllers/operation_ctrl.php');
operations_form_ctrl(); operations_form_ctrl();

View file

@ -1,23 +1,15 @@
<?php <?php
function create_sauveteur(PDO $connex, $nom, $prenom, $dep, $spe, $date, $heure, $role, $tel) function create_sauveteur(PDO $c, string $nom, string $prenom, string $dep, string $spe, string $date_heure, string $tel): void {
{ $req = "INSERT INTO Sauveteur (nom, prenom, departement, specialite, DateHeureEngagement, NumTel)
$req = "INSERT INTO Sauveteur VALUES (:nom, :prenom, :dep, :spe, :date_heure, :tel)";
(nom, prenom, dep, spe, ladate, lheure, role, tel)
VALUES
(:nom, :prenom, :dep, :spe, :date, :heure, :role, :tel)";
$prep = $connex->prepare($req);
$prep = $c->prepare($req);
$prep->bindValue(':nom', $nom); $prep->bindValue(':nom', $nom);
$prep->bindValue(':prenom', $prenom); $prep->bindValue(':prenom', $prenom);
$prep->bindValue(':dep', $dep); $prep->bindValue(':dep', $dep);
$prep->bindValue(':spe', $spe); $prep->bindValue(':spe', $spe);
$prep->bindValue(':date_heure', $date_heure);
$prep->bindValue(':tel', $tel); $prep->bindValue(':tel', $tel);
$prep->bindValue(':date', $date);
$prep->execute(); $prep->execute();
} }

View file

@ -1,15 +1,24 @@
<?php require('header.php')?> <?php require('views/header.php'); ?>
<h2>Ajouts de personnes </h2> <h2>Ajout de personnes</h2>
<form action="traite_formulaire.php" method="post"> <form action="index.php?route=ajout_personnes" method="post">
<p>Nom : <input type="text" name="nom" /></p> <p>
<p>Prénom : <input type="text" name="prenom" /></p> <label>Nom :</label>
<input type="text" name="nom" required>
<p>Département : <input type="text" name="dep" /></p> </p>
<p>
<label>Prénom :</label>
<input type="text" name="prenom" required>
</p>
<p>
<label>Département :</label>
<input type="text" name="dep" required>
</p>
<p>
<label for="spe">Spécialité :</label> <label for="spe">Spécialité :</label>
<select type="number" min="1" placeholder="spécialité" name="spe" > <select name="spe" id="spe">
<option value="1" selected="true">Evacuation </option> <option value="1">Évacuation</option>
<option value="2">ASV (assistance victime)</option> <option value="2">ASV (assistance victime)</option>
<option value="3">Transmission</option> <option value="3">Transmission</option>
<option value="4">Conseiller technique (chef)</option> <option value="4">Conseiller technique (chef)</option>
@ -17,34 +26,25 @@
<option value="6">Désobstruction</option> <option value="6">Désobstruction</option>
<option value="7">Médical</option> <option value="7">Médical</option>
<option value="8">Ventilation</option> <option value="8">Ventilation</option>
<option value="9">Pas de spécialitées</option> <option value="9">Pas de spécialité</option>
</select> </select>
</p> </p>
<p> <p>
<label for="date">Date d'engagement sur l'opération de secours :</label> <label for="date">Date d'engagement :</label>
<input type="date" name="ladate" /></p> <input type="date" id="date" name="ladate" required>
</p> </p>
<p> <p>
<label for="heure">Heure d'engagement sur l'opération de secours :</label> <label for="heure">Heure d'engagement :</label>
<input type="time" name="lheure"/> <input type="time" id="heure" name="lheure" required>
</p>
<p>
<label for="roles">Rôle :</label>
<select type="number" min="1" placeholder="Rôle" name="role">
<option value="1" selected="true">Gestionnaire </option>
<option value="2">Lecteur </option>
<option value="3">Admin</option>
</select>
</p> </p>
<p> <p>
<label for="tel">Numéro de téléphone :</label> <label for="tel">Numéro de téléphone :</label>
<input type="tel" id="tel" name="tel" placeholder="Numéro de téléphone" required> <input type="tel" id="tel" name="tel" required>
</p>
<p>
<input type="submit" value="Valider">
<input type="reset" value="Annuler">
</p> </p>
<input type="submit" value="Valider" />
<input type="reset" value="Annuler" />
</form> </form>
<?php require('views/footer.php'); ?>
<?php
require('footer.php');

View file

@ -1,9 +1,8 @@
<?php require('views/header.php'); ?> <?php require('views/header.php'); ?>
<nav style="margin-bottom: 20px;"> <nav class="sub-nav">
<a href="index.php?route=operations" style="text-decoration: underline; font-weight: bold; margin-right: 15px;">Opérations</a> <a href="index.php?route=operations">Opérations</a>
<a href="index.php?route=ajout_personnes" style="margin-right: 15px;">Ajout personnes</a> <a href="index.php?route=ajout_personnes">Ajout personnes</a>
<a href="index.php?route=planning">Planning</a>
</nav> </nav>
<h2>Création d'une opération</h2> <h2>Création d'une opération</h2>