noam76 icon

gestion.php

noam76 | PRO | 12/11/23 05:03:56 PM UTC | 0 ⭐ | 1563 👁️ | Never ⏰ | []
PHP |

10 KB

|

None

|

0 👍

/

0 👎

<!DOCTYPE html>
<?php
// include 'class.php';
?>
<?php
class Cours {
    public $nom;
 
    function __construct($nom) {
        $this->nom = $nom;
    }
}
 
class Enseignant {
    public $nom;
    public $prenom;
    public $email;
    public $coordonnees;
 
    function __construct($nom, $prenom, $email, $tel, $coordonnees) {
        $this->nom = $nom;
        $this->prenom = $prenom;
        $this->email = $email;
        $this->tel = $tel;
        $this->coordonnees = $coordonnees;
    }
}
 
class GestionCours {
    public $nom_cours;
    public $nom_enseignant;
    public $lieu;
    public $date;
    public $heure;
 
    function __construct($nom_cours, $nom_enseignant, $lieu, $date, $heure) {
        $this->nom_cours = $nom_cours;
        $this->nom_enseignant = $nom_enseignant;
        $this->lieu = $lieu;
        $this->date = $date;
        $this->heure = $heure;
    }
}
 
// Connexion à la base de données
try {
    $dbh = new PDO('mysql:host=localhost;dbname=gestion_cours', 'root', '');
} catch (PDOException $e) {
    die("Erreur de connexion: " . $e->getMessage());
}
 
// Gestion des cours
function ajouter_cours($cours) {
    global $dbh;
    $sql = "INSERT INTO cours (nom) VALUES (?)";
    $stmt= $dbh->prepare($sql);
    $stmt->execute([$cours->nom]);
}
 
function supprimer_cours($cours) {
    global $dbh;
    $sql = "DELETE FROM cours WHERE nom = ?";
    $stmt= $dbh->prepare($sql);
    $stmt->execute([$cours->nom]);
}
 
// Gestion des enseignants
function ajouter_enseignant($enseignant) {
    global $dbh;
    $sql = "INSERT INTO enseignants (nom, prenom, email, tel, coordonnees) VALUES (?, ?, ?, ?,?)";
    $stmt= $dbh->prepare($sql);
    $stmt->execute([$enseignant->nom, $enseignant->prenom, $enseignant->email, $enseignant->tel, $enseignant->coordonnees]);
}
 
function supprimer_enseignant($enseignant) {
    global $dbh;
    $sql = "DELETE FROM enseignants WHERE nom = ?";
    $stmt= $dbh->prepare($sql);
    $stmt->execute([$enseignant->nom]);
}
 
// Gestion de l'attribution des cours aux enseignants
function attribuer_cours($gestionCours) {
    global $dbh;
    $sql = "INSERT INTO gestion_cours (nom_cours, nom_enseignant, lieu, date, heure) VALUES (?, ?, ?, ?, ?)";
    $stmt= $dbh->prepare($sql);
    $stmt->execute([$gestionCours->nom_cours, $gestionCours->nom_enseignant, $gestionCours->lieu, $gestionCours->date, $gestionCours->heure]);
}
 
function supprimer_attribution_cours($gestionCours) {
    global $dbh;
    $sql = "DELETE FROM gestion_cours WHERE nom_cours = ? AND nom_enseignant = ? AND lieu = ? AND date = ? AND heure = ?";
    $stmt= $dbh->prepare($sql);
    $stmt->execute([$gestionCours->nom_cours, $gestionCours->nom_enseignant, $gestionCours->lieu, $gestionCours->date, $gestionCours->heure]);
}
 
// Gestion de la requête AJAX
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_POST['nom_cours'])) {
        // Valider les données
        $nom_cours = $_POST['nom_cours'];
        if (empty($nom_cours) || strlen($nom_cours) > 50) {
            die("Erreur : Le nom du cours est invalide.");
        }
 
        // Nettoyer les données
        $nom_cours = trim($nom_cours);
        $nom_cours = htmlspecialchars($nom_cours, ENT_QUOTES, 'UTF-8');
 
        // Utiliser les données nettoyées pour créer un nouveau cours
        $cours = new Cours($nom_cours);
        ajouter_cours($cours);
    }
    
    if (isset($_POST['nom_enseignant'])) {
        // Valider les données
        $nom_enseignant = $_POST['nom_enseignant'];
        if (empty($nom_enseignant) || strlen($nom_enseignant) > 50) {
            die("Erreur : Le nom du cours est invalide.");
        }
        // Nettoyer les données
        $nom_enseignant = trim($nom_enseignant);
        $nom_enseignant = htmlspecialchars($nom_enseignant, ENT_QUOTES, 'UTF-8');
 
        // Utiliser les données nettoyées pour créer un nouveau enseignant
    $enseignant = new Enseignant($nom_enseignant, $prenom, $email, $tel, $coordonnees);
    ajouter_enseignant($enseignant);
    }
    
    if (isset($_POST['nom_cours'], $_POST['nom_enseignant'], $_POST['lieu'], $_POST['date'], $_POST['heure'])) {
        // Valider les données
        $nom_cours = $_POST['nom_cours'];
        $nom_enseignant = $_POST['nom_enseignant'];
        $lieu = $_POST['lieu'];
        $date = $_POST['date'];
        $heure = $_POST['heure'];
        if (empty($nom_cours) || strlen($nom_cours) > 50 || empty($nom_enseignant) || strlen($nom_enseignant) > 50 || empty($lieu) || strlen($lieu) > 50 || empty($date) || empty($heure)) {
            die("Erreur : Les données sont invalides.");
        }
        // Nettoyer les données
        $nom_cours = trim($nom_cours);
        $nom_cours = htmlspecialchars($nom_cours, ENT_QUOTES, 'UTF-8');
        $nom_enseignant = trim($nom_enseignant);
        $nom_enseignant = htmlspecialchars($nom_enseignant, ENT_QUOTES, 'UTF-8');
        $lieu = trim($lieu);
        $lieu = htmlspecialchars($lieu, ENT_QUOTES, 'UTF-8');
        $date = trim($date);
        $date = htmlspecialchars($date, ENT_QUOTES, 'UTF-8');
        $heure = trim($heure);
        $heure = htmlspecialchars($heure, ENT_QUOTES, 'UTF-8');
 
        // Utiliser les données nettoyées pour créer une nouvelle attribution de cours
        $gestionCours = new GestionCours($nom_cours, $nom_enseignant, $lieu, $date, $heure);
        attribuer_cours($gestionCours);
    }
}
$dbh = null;
?>
<html>
<head>
    <title>Gestion des cours</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <h1>Gestion des cours</h1>
    <h2>Cours</h2>
    <input type="text" id="nom_cours" placeholder="Nom du cours">
    <button onclick="ajouter_cours()">Ajouter un cours</button>
    <button onclick="supprimer_cours()">Supprimer le cours sélectionné</button>
 
    <h2>Enseignants</h2>
    <input type="text" id="nom_enseignants" placeholder="Nom">
    <input type="text" id="prenom_enseignants" placeholder="Prenom">
    <input type="email" id="email_enseignants" placeholder="Email">
    <input type="number" id="tel_enseignants" placeholder="Telephone">
    <input type="text" id="coordonnees_enseignants" placeholder="Coordonnees">
    <button onclick="ajouter_enseignant()">Ajouter un enseignant</button>
    <button onclick="supprimer_enseignant()">Supprimer l'enseignant sélectionné</button>
 
    <select id="nom_cours">
    <h2>Attribution des cours</h2>
        <!-- Les options seront ajoutées ici depuis la base de données -->
    </select>
    <select id="nom_enseignant">
        <!-- Les options seront ajoutées ici depuis la base de données -->
    </select>
    <input type="text" id="lieu" placeholder="Lieu du cours">
    <input type="date" id="date" placeholder="Date du cours">
    <input type="time" id="heure" placeholder="Heure du cours">
    <button onclick="attribuer_cours()">Attribuer un cours</button>
    <button onclick="supprimer_attribution()">Supprimer l'attribution sélectionnée</button>
 
    <script>
        $(document).ready(function() {
            $('#ajouter_cours').click(function(e) {
                e.preventDefault();
                var nom_cours = $('#nom_cours').val();
                $.ajax({
                    type: "POST",
                    url: 'class.php',
                    data: {nom_cours: nom_cours},
                    success: function(data) {
                        $('#liste_cours').html(data);
                    },
                    error: function(xhr, status, error) {
                        console.error('Une erreur est survenue : ' + xhr.status);
                    }
                });
            });
            // Ajoutez ici les autres gestionnaires de clics pour les autres boutons
        });
    
    function remplirListes() {
    // Créer une requête AJAX pour obtenir les données de la base de données
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'get_data.php', true);
 
    // Envoyer la requête
    xhr.send();
 
    // Gérer la réponse
    xhr.onload = function () {
        if (xhr.status === 200) {
            // Si la requête a réussi, remplir les listes déroulantes avec les données
            var data = JSON.parse(xhr.responseText);
            var selectCours = document.getElementById('nom_cours');
            var selectEnseignant = document.getElementById('nom_enseignant');
 
            data.cours.forEach(function(cours) {
                var option = document.createElement('option');
                option.value = cours.id;
                option.text = cours.nom;
                selectCours.appendChild(option);
            });
 
            data.enseignants.forEach(function(enseignant) {
                var option = document.createElement('option');
                option.value = enseignant.id;
                option.text = enseignant.nom;
                selectEnseignant.appendChild(option);
            });
        } else {
            // Sinon, afficher une erreur
            console.error('Une erreur est survenue : ' + xhr.status);
        }
    };
}
 
// Appeler la fonction au chargement de la page
window.onload = remplirListes;
 
        /*function ajouter_cours() {
            // Récupérer le nom du cours à partir d'un champ de saisie (à ajouter dans votre HTML)
            var nom_cours = document.getElementById('nom_cours').value;
        
            // Créer une instance de FormData pour stocker les données à envoyer
            var data = new FormData();
            data.append('nom_cours', nom_cours);
        
            // Créer une requête AJAX
            var xhr = new XMLHttpRequest();
            xhr.open('POST', 'class.php', true);
        
            // Envoyer la requête
            xhr.send(data);
        
            // Gérer la réponse
            xhr.onload = function () {
                if (xhr.status === 200) {
                    // Si la requête a réussi, mettre à jour la liste des cours
                    document.getElementById('liste_cours').innerHTML = xhr.responseText;
                } else {
                    // Sinon, afficher une erreur
                    console.error('Une erreur est survenue : ' + xhr.status);
                }
            };
        }*/
    </script>
</body>
</html>

Comments