Advertisement
noam76

gestion.php

Dec 11th, 2023
1,101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 10.00 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <?php
  3. // include 'class.php';
  4. ?>
  5. <?php
  6. class Cours {
  7.     public $nom;
  8.  
  9.     function __construct($nom) {
  10.         $this->nom = $nom;
  11.     }
  12. }
  13.  
  14. class Enseignant {
  15.     public $nom;
  16.     public $prenom;
  17.     public $email;
  18.     public $coordonnees;
  19.  
  20.     function __construct($nom, $prenom, $email, $tel, $coordonnees) {
  21.         $this->nom = $nom;
  22.         $this->prenom = $prenom;
  23.         $this->email = $email;
  24.         $this->tel = $tel;
  25.         $this->coordonnees = $coordonnees;
  26.     }
  27. }
  28.  
  29. class GestionCours {
  30.     public $nom_cours;
  31.     public $nom_enseignant;
  32.     public $lieu;
  33.     public $date;
  34.     public $heure;
  35.  
  36.     function __construct($nom_cours, $nom_enseignant, $lieu, $date, $heure) {
  37.         $this->nom_cours = $nom_cours;
  38.         $this->nom_enseignant = $nom_enseignant;
  39.         $this->lieu = $lieu;
  40.         $this->date = $date;
  41.         $this->heure = $heure;
  42.     }
  43. }
  44.  
  45. // Connexion à la base de données
  46. try {
  47.     $dbh = new PDO('mysql:host=localhost;dbname=gestion_cours', 'root', '');
  48. } catch (PDOException $e) {
  49.     die("Erreur de connexion: " . $e->getMessage());
  50. }
  51.  
  52. // Gestion des cours
  53. function ajouter_cours($cours) {
  54.     global $dbh;
  55.     $sql = "INSERT INTO cours (nom) VALUES (?)";
  56.     $stmt= $dbh->prepare($sql);
  57.     $stmt->execute([$cours->nom]);
  58. }
  59.  
  60. function supprimer_cours($cours) {
  61.     global $dbh;
  62.     $sql = "DELETE FROM cours WHERE nom = ?";
  63.     $stmt= $dbh->prepare($sql);
  64.     $stmt->execute([$cours->nom]);
  65. }
  66.  
  67. // Gestion des enseignants
  68. function ajouter_enseignant($enseignant) {
  69.     global $dbh;
  70.     $sql = "INSERT INTO enseignants (nom, prenom, email, tel, coordonnees) VALUES (?, ?, ?, ?,?)";
  71.     $stmt= $dbh->prepare($sql);
  72.     $stmt->execute([$enseignant->nom, $enseignant->prenom, $enseignant->email, $enseignant->tel, $enseignant->coordonnees]);
  73. }
  74.  
  75. function supprimer_enseignant($enseignant) {
  76.     global $dbh;
  77.     $sql = "DELETE FROM enseignants WHERE nom = ?";
  78.     $stmt= $dbh->prepare($sql);
  79.     $stmt->execute([$enseignant->nom]);
  80. }
  81.  
  82. // Gestion de l'attribution des cours aux enseignants
  83. function attribuer_cours($gestionCours) {
  84.     global $dbh;
  85.     $sql = "INSERT INTO gestion_cours (nom_cours, nom_enseignant, lieu, date, heure) VALUES (?, ?, ?, ?, ?)";
  86.     $stmt= $dbh->prepare($sql);
  87.     $stmt->execute([$gestionCours->nom_cours, $gestionCours->nom_enseignant, $gestionCours->lieu, $gestionCours->date, $gestionCours->heure]);
  88. }
  89.  
  90. function supprimer_attribution_cours($gestionCours) {
  91.     global $dbh;
  92.     $sql = "DELETE FROM gestion_cours WHERE nom_cours = ? AND nom_enseignant = ? AND lieu = ? AND date = ? AND heure = ?";
  93.     $stmt= $dbh->prepare($sql);
  94.     $stmt->execute([$gestionCours->nom_cours, $gestionCours->nom_enseignant, $gestionCours->lieu, $gestionCours->date, $gestionCours->heure]);
  95. }
  96.  
  97. // Gestion de la requête AJAX
  98. if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  99.     if (isset($_POST['nom_cours'])) {
  100.         // Valider les données
  101.         $nom_cours = $_POST['nom_cours'];
  102.         if (empty($nom_cours) || strlen($nom_cours) > 50) {
  103.             die("Erreur : Le nom du cours est invalide.");
  104.         }
  105.  
  106.         // Nettoyer les données
  107.         $nom_cours = trim($nom_cours);
  108.         $nom_cours = htmlspecialchars($nom_cours, ENT_QUOTES, 'UTF-8');
  109.  
  110.         // Utiliser les données nettoyées pour créer un nouveau cours
  111.         $cours = new Cours($nom_cours);
  112.         ajouter_cours($cours);
  113.     }
  114.    
  115.     if (isset($_POST['nom_enseignant'])) {
  116.         // Valider les données
  117.         $nom_enseignant = $_POST['nom_enseignant'];
  118.         if (empty($nom_enseignant) || strlen($nom_enseignant) > 50) {
  119.             die("Erreur : Le nom du cours est invalide.");
  120.         }
  121.         // Nettoyer les données
  122.         $nom_enseignant = trim($nom_enseignant);
  123.         $nom_enseignant = htmlspecialchars($nom_enseignant, ENT_QUOTES, 'UTF-8');
  124.  
  125.         // Utiliser les données nettoyées pour créer un nouveau enseignant
  126.     $enseignant = new Enseignant($nom_enseignant, $prenom, $email, $tel, $coordonnees);
  127.     ajouter_enseignant($enseignant);
  128.     }
  129.    
  130.     if (isset($_POST['nom_cours'], $_POST['nom_enseignant'], $_POST['lieu'], $_POST['date'], $_POST['heure'])) {
  131.         // Valider les données
  132.         $nom_cours = $_POST['nom_cours'];
  133.         $nom_enseignant = $_POST['nom_enseignant'];
  134.         $lieu = $_POST['lieu'];
  135.         $date = $_POST['date'];
  136.         $heure = $_POST['heure'];
  137.         if (empty($nom_cours) || strlen($nom_cours) > 50 || empty($nom_enseignant) || strlen($nom_enseignant) > 50 || empty($lieu) || strlen($lieu) > 50 || empty($date) || empty($heure)) {
  138.             die("Erreur : Les données sont invalides.");
  139.         }
  140.         // Nettoyer les données
  141.         $nom_cours = trim($nom_cours);
  142.         $nom_cours = htmlspecialchars($nom_cours, ENT_QUOTES, 'UTF-8');
  143.         $nom_enseignant = trim($nom_enseignant);
  144.         $nom_enseignant = htmlspecialchars($nom_enseignant, ENT_QUOTES, 'UTF-8');
  145.         $lieu = trim($lieu);
  146.         $lieu = htmlspecialchars($lieu, ENT_QUOTES, 'UTF-8');
  147.         $date = trim($date);
  148.         $date = htmlspecialchars($date, ENT_QUOTES, 'UTF-8');
  149.         $heure = trim($heure);
  150.         $heure = htmlspecialchars($heure, ENT_QUOTES, 'UTF-8');
  151.  
  152.         // Utiliser les données nettoyées pour créer une nouvelle attribution de cours
  153.         $gestionCours = new GestionCours($nom_cours, $nom_enseignant, $lieu, $date, $heure);
  154.         attribuer_cours($gestionCours);
  155.     }
  156. }
  157. $dbh = null;
  158. ?>
  159. <html>
  160. <head>
  161.     <title>Gestion des cours</title>
  162.     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  163. </head>
  164. <body>
  165.     <h1>Gestion des cours</h1>
  166.     <h2>Cours</h2>
  167.     <input type="text" id="nom_cours" placeholder="Nom du cours">
  168.     <button onclick="ajouter_cours()">Ajouter un cours</button>
  169.     <button onclick="supprimer_cours()">Supprimer le cours sélectionné</button>
  170.  
  171.     <h2>Enseignants</h2>
  172.     <input type="text" id="nom_enseignants" placeholder="Nom">
  173.     <input type="text" id="prenom_enseignants" placeholder="Prenom">
  174.     <input type="email" id="email_enseignants" placeholder="Email">
  175.     <input type="number" id="tel_enseignants" placeholder="Telephone">
  176.     <input type="text" id="coordonnees_enseignants" placeholder="Coordonnees">
  177.     <button onclick="ajouter_enseignant()">Ajouter un enseignant</button>
  178.     <button onclick="supprimer_enseignant()">Supprimer l'enseignant sélectionné</button>
  179.  
  180.     <select id="nom_cours">
  181.     <h2>Attribution des cours</h2>
  182.         <!-- Les options seront ajoutées ici depuis la base de données -->
  183.     </select>
  184.     <select id="nom_enseignant">
  185.         <!-- Les options seront ajoutées ici depuis la base de données -->
  186.     </select>
  187.     <input type="text" id="lieu" placeholder="Lieu du cours">
  188.     <input type="date" id="date" placeholder="Date du cours">
  189.     <input type="time" id="heure" placeholder="Heure du cours">
  190.     <button onclick="attribuer_cours()">Attribuer un cours</button>
  191.     <button onclick="supprimer_attribution()">Supprimer l'attribution sélectionnée</button>
  192.  
  193.     <script>
  194.         $(document).ready(function() {
  195.             $('#ajouter_cours').click(function(e) {
  196.                 e.preventDefault();
  197.                 var nom_cours = $('#nom_cours').val();
  198.                 $.ajax({
  199.                     type: "POST",
  200.                     url: 'class.php',
  201.                     data: {nom_cours: nom_cours},
  202.                     success: function(data) {
  203.                         $('#liste_cours').html(data);
  204.                     },
  205.                     error: function(xhr, status, error) {
  206.                         console.error('Une erreur est survenue : ' + xhr.status);
  207.                     }
  208.                 });
  209.             });
  210.             // Ajoutez ici les autres gestionnaires de clics pour les autres boutons
  211.         });
  212.    
  213.     function remplirListes() {
  214.     // Créer une requête AJAX pour obtenir les données de la base de données
  215.     var xhr = new XMLHttpRequest();
  216.     xhr.open('GET', 'get_data.php', true);
  217.  
  218.     // Envoyer la requête
  219.     xhr.send();
  220.  
  221.     // Gérer la réponse
  222.     xhr.onload = function () {
  223.         if (xhr.status === 200) {
  224.             // Si la requête a réussi, remplir les listes déroulantes avec les données
  225.             var data = JSON.parse(xhr.responseText);
  226.             var selectCours = document.getElementById('nom_cours');
  227.             var selectEnseignant = document.getElementById('nom_enseignant');
  228.  
  229.             data.cours.forEach(function(cours) {
  230.                 var option = document.createElement('option');
  231.                 option.value = cours.id;
  232.                 option.text = cours.nom;
  233.                 selectCours.appendChild(option);
  234.             });
  235.  
  236.             data.enseignants.forEach(function(enseignant) {
  237.                 var option = document.createElement('option');
  238.                 option.value = enseignant.id;
  239.                 option.text = enseignant.nom;
  240.                 selectEnseignant.appendChild(option);
  241.             });
  242.         } else {
  243.             // Sinon, afficher une erreur
  244.             console.error('Une erreur est survenue : ' + xhr.status);
  245.         }
  246.     };
  247. }
  248.  
  249. // Appeler la fonction au chargement de la page
  250. window.onload = remplirListes;
  251.  
  252.         /*function ajouter_cours() {
  253.             // Récupérer le nom du cours à partir d'un champ de saisie (à ajouter dans votre HTML)
  254.             var nom_cours = document.getElementById('nom_cours').value;
  255.        
  256.             // Créer une instance de FormData pour stocker les données à envoyer
  257.             var data = new FormData();
  258.             data.append('nom_cours', nom_cours);
  259.        
  260.             // Créer une requête AJAX
  261.             var xhr = new XMLHttpRequest();
  262.             xhr.open('POST', 'class.php', true);
  263.        
  264.             // Envoyer la requête
  265.             xhr.send(data);
  266.        
  267.             // Gérer la réponse
  268.             xhr.onload = function () {
  269.                 if (xhr.status === 200) {
  270.                     // Si la requête a réussi, mettre à jour la liste des cours
  271.                     document.getElementById('liste_cours').innerHTML = xhr.responseText;
  272.                 } else {
  273.                     // Sinon, afficher une erreur
  274.                     console.error('Une erreur est survenue : ' + xhr.status);
  275.                 }
  276.             };
  277.         }*/
  278.     </script>
  279. </body>
  280. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement