diff --git a/README.md b/README.md index 764aa41..8e5cc82 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ +## AVVISO IMPORTANTE +Questo è il ramo di SVILUPPO. È inteso per testare le ultime funzionalità e aiutarmi nello sviluppo. La stabilità e il funzionamento del codice non sono garantiti. Usare a proprio rischio e pericolo. + # Orario Scuola Una piattaforma web per visualizzare gli orari scolastici delle classi, degli insegnanti e dei vari laboratori (se presenti) diff --git a/htdocs/admin/timetable.php b/htdocs/admin/timetable.php index 5c7c024..68ff3b2 100644 --- a/htdocs/admin/timetable.php +++ b/htdocs/admin/timetable.php @@ -1,32 +1,52 @@ query("INSERT INTO timetable (class_id,day,hour,subject_id) VALUES ($class_id,'$day',$hour,$subject_id)"); - header("Location: timetable.php"); exit; -} -?> -query("DELETE FROM timetable WHERE id=$id"); +// --- Recupera tutte le materie --- +$subjects = []; +$res = $conn->query("SELECT * FROM subjects ORDER BY name ASC"); +while ($r = $res->fetch_assoc()) { + $label = $r['name']; + if (!empty($r['teacher'])) $label .= " ({$r['teacher']})"; + if (!empty($r['room'])) $label .= " ({$r['room']})"; + $subjects[] = ['id' => $r['id'], 'label' => $label]; } -// Se è stato cliccato il link "Elimina" -if(isset($_GET['delete'])) { - deleteTimetableEntry($conn, $_GET['delete']); - // Dopo l'eliminazione, reindirizza per evitare duplicazioni - header("Location: timetable.php"); - exit; +// --- Salvataggio orario --- +if ($_SERVER["REQUEST_METHOD"] === "POST" && isset($_POST['class_id']) && isset($_POST['subject'])) { + $class_id = intval($_POST['class_id']); + if ($class_id > 0) { + // Cancella solo l'orario di questa classe + $conn->query("DELETE FROM timetable WHERE class_id=$class_id"); + + foreach ($_POST['subject'] as $day => $hours) { + foreach ($hours as $hour => $sub_ids) { + foreach ($sub_ids as $subject_id) { + $subject_id = intval($subject_id); + if (!empty($subject_id)) { + $conn->query("INSERT INTO timetable (class_id, day, hour, subject_id) + VALUES ($class_id, '" . $conn->real_escape_string($day) . "', $hour, $subject_id)"); + } + } + } + } + + header("Location: timetable.php?class_id=$class_id&saved=1"); + exit; + } +} + +// --- Selezione classe corrente --- +$class_id = isset($_GET['class_id']) ? intval($_GET['class_id']) : 0; + +// --- Precaricamento dati orario --- +$preselectedData = []; +if ($class_id > 0) { + $res = $conn->query("SELECT * FROM timetable WHERE class_id=$class_id"); + while ($r = $res->fetch_assoc()) { + $preselectedData[$r['day']][$r['hour']][] = $r['subject_id']; + } } ?> @@ -35,115 +55,129 @@ if(isset($_GET['delete'])) {
Classe | -Giorno | -Ora | -Materia | -Azione | -
---|---|---|---|---|
- | - | - | - | - - Elimina - - | -
+
+
+
+
+
Nota: Questa pagina si vede meglio da computer desktop. Se sei da computer, puoi ignorare questo messaggio.
Copyright (C) 2025 EmmeV. All rights reserved.