<!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