Albisrieden/s/courses.php
2025-01-07 04:13:11 +01:00

137 lines
6.2 KiB
PHP

<?php include('includes/header.php');
if(!isset($_SESSION['id'])){
header('Location: index.php');
}
?>
<div>
<div class="card card-body p-4">
<?= alertMessage(); ?>
<?php
$ID = $_SESSION['id'];
if (!is_numeric($ID)) {
echo '<div class="alert alert-danger" role="alert">' . $ID . '</div>';
return false;
}
$registration = getById('tbl_registrations', $ID);
if ($registration['status'] == 200) {
// Abfrage, um die Anzahl der Lektionen der zugewiesenen Kurse abzurufen
$assignedLessonCount = 0;
$assignedCoursesQuery = "SELECT course_id FROM tbl_assign_courses WHERE user_id = $ID";
$assignedCoursesResult = mysqli_query($conn, $assignedCoursesQuery);
// Array zum Speichern der bereits zugewiesenen Kurs-IDs
$assignedCourseIds = [];
if ($assignedCoursesResult && mysqli_num_rows($assignedCoursesResult) > 0) {
while ($row = mysqli_fetch_assoc($assignedCoursesResult)) {
$assignedCourseIds[] = $row['course_id'];
$courseId = $row['course_id'];
$courseQuery = "SELECT lessons FROM tbl_courses WHERE id = $courseId AND (name = 'Englisch' OR name = 'Französisch')";
$courseResult = mysqli_query($conn, $courseQuery);
if ($courseResult && mysqli_num_rows($courseResult) > 0) {
$courseRow = mysqli_fetch_assoc($courseResult);
$assignedLessonCount += $courseRow['lessons'];
}
}
}
// Basisanzahl an Lektionen
$baseLessonCount = 22;
// Gesamtanzahl der Lektionen
$totalLessonCount = $baseLessonCount + $assignedLessonCount;
?>
<div class="row">
<div class="col-6">
<h4 class="fw-semibold mb-4">Kurse</h4>
</div>
</div>
<form action="code.php" method="POST" id="courseForm">
<input type="hidden" name="id" value="<?= $registration['data']['id'] ;?>" required>
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Kurs</th>
<th>Lektionen</th>
<th><i class="ti ti-square-check"></i></th>
</tr>
</thead>
<tbody>
<?php
// Abfrage, um Kurse abzurufen, die nicht Englisch oder Französisch heißen
$query = "SELECT id, name, lessons FROM tbl_courses WHERE name <> 'Englisch' AND name <> 'Französisch'";
$result = mysqli_query($conn, $query);
// Tabelle mit Kursen erstellen, wenn die Abfrage erfolgreich war
if ($result && mysqli_num_rows($result) > 0) {
while ($row = mysqli_fetch_assoc($result)) {
echo '<tr>';
echo '<td>' . $row['name'] . '</td>';
echo '<td>' . $row['lessons'] . '</td>';
// Überprüfen, ob der Kurs bereits zugewiesen ist, und die Checkbox entsprechend auswählen
echo '<td><input type="checkbox" name="selected_courses[]" value="' . $row['id'] . '"' . (in_array($row['id'], $assignedCourseIds) ? ' checked' : '') . '></td>';
echo '</tr>';
}
} else {
// Wenn keine passenden Kurse gefunden wurden
echo '<tr><td colspan="3">Keine Kurse gefunden.</td></tr>';
}
?>
</tbody>
</table>
</div>
<div class="col-md-12 mt-4">
<!-- Anzeige für die Anzahl der ausgewählten Lektionen -->
<p>Du darfst zwischen 32 und 36 Lektionen haben, du hast </p>
<u><h6 id="lessonCount"><?= $totalLessonCount; ?></h6></u>
<button type="submit" name="sek" class="btn btn-info float-end mx-1" id="submitButton" <?= ($totalLessonCount >= 32 && $totalLessonCount <= 36) ? '' : 'disabled'; ?>>Weiter<i class="ti ti-arrow-right ms-2"></i> </button>
</div>
</form>
<?php
}
?>
</div>
</div>
<?php include('includes/footer.php'); ?>
<script>
// Funktion zum Aktualisieren der Anzahl der ausgewählten Lektionen und Überprüfen der Gültigkeit
function updateLessonCount() {
// Höre auf Änderungen in den Checkboxen
var checkboxes = document.querySelectorAll('input[type="checkbox"]');
// Zähle die Anzahl der ausgewählten Lektionen
var lessonCount = <?= $totalLessonCount; ?>; // Basisanzahl an Lektionen
checkboxes.forEach(function(cb) {
if (cb.checked) {
// Wenn die Checkbox ausgewählt ist, füge die Anzahl der Lektionen hinzu
lessonCount += parseInt(cb.parentNode.previousElementSibling.textContent);
}
});
// Aktualisiere den Text neben dem Weiter-Knopf
var lessonCountDisplay = document.getElementById('lessonCount');
lessonCountDisplay.textContent = lessonCount;
// Überprüfe, ob die Anzahl der ausgewählten Lektionen zwischen 32 und 36 liegt
var isValidLessonCount = lessonCount >= 32 && lessonCount <= 36;
// Aktualisiere den Status des Submit-Buttons basierend auf dem Ergebnis
document.getElementById('submitButton').disabled = !isValidLessonCount;
}
// Führe die Funktion beim Laden der Seite aus
document.addEventListener('DOMContentLoaded', function() {
updateLessonCount();
});
// Führe die Funktion bei Änderungen in den Checkboxen aus
document.addEventListener('change', function() {
updateLessonCount();
});
</script>