diff --git a/webseite/assets/js/tasks.js b/webseite/assets/js/tasks.js new file mode 100644 index 0000000..2827f2e --- /dev/null +++ b/webseite/assets/js/tasks.js @@ -0,0 +1,44 @@ +document.addEventListener('DOMContentLoaded', function () { + console.log('tasks.js wurde geladen.'); + + // Event-Delegation für "Antwort prüfen" Buttons + const checkButtons = document.querySelectorAll('.check-answer'); + console.log(`Found ${checkButtons.length} check-answer buttons.`); + + checkButtons.forEach(function (button) { + button.addEventListener('click', function () { + console.log('Antwort prüfen Button geklickt.'); + const variableContainer = this.closest('.variable-container'); + const input = variableContainer.querySelector('input'); + const userAnswer = input.value.trim(); + const correctAnswer = input.getAttribute('data-correct-answer').trim().toLowerCase(); + const feedback = variableContainer.querySelector('.feedback'); + + if (userAnswer.toLowerCase() === correctAnswer) { + feedback.style.color = 'green'; + feedback.textContent = 'Richtig!'; + } else { + feedback.style.color = 'red'; + feedback.textContent = 'Falsch. Versuchen Sie es erneut.'; + } + feedback.style.display = 'block'; + }); + }); + + // Event-Delegation für "Antwort anzeigen" Buttons + const showButtons = document.querySelectorAll('.show-answer'); + console.log(`Found ${showButtons.length} show-answer buttons.`); + + showButtons.forEach(function (button) { + button.addEventListener('click', function () { + console.log('Antwort anzeigen Button geklickt.'); + const variableContainer = this.closest('.variable-container'); + const input = variableContainer.querySelector('input'); + const correctAnswer = input.getAttribute('data-correct-answer'); + const correctAnswerDiv = variableContainer.querySelector('.correct-answer span'); + + correctAnswerDiv.textContent = correctAnswer; + correctAnswerDiv.parentElement.style.display = 'block'; + }); + }); +}); diff --git a/webseite/check_answer.php b/webseite/check_answer.php new file mode 100644 index 0000000..e68fc3e --- /dev/null +++ b/webseite/check_answer.php @@ -0,0 +1,39 @@ + false, 'message' => 'Ungültige Eingaben.']); + exit; +} + +// Laden Sie die Aufgaben und Variablen entsprechend Ihrer Datenstruktur +$tasks = $topicData->getTasks(); + +if (!isset($tasks[$taskId])) { + echo json_encode(['success' => false, 'message' => 'Aufgabe nicht gefunden.']); + exit; +} + +$variables = $tasks[$taskId]->getVariables(); + +if (!isset($variables[$variableIndex])) { + echo json_encode(['success' => false, 'message' => 'Variable nicht gefunden.']); + exit; +} + +$correctAnswer = strtolower(trim($variables[$variableIndex]->getCorrectAnswer())); +$userAnswerLower = strtolower($userAnswer); + +if ($userAnswerLower === $correctAnswer) { + echo json_encode(['success' => true, 'message' => 'Richtig!']); +} else { + echo json_encode(['success' => false, 'message' => 'Falsch.']); +} \ No newline at end of file diff --git a/webseite/show_answer.php b/webseite/show_answer.php new file mode 100644 index 0000000..9e82ab5 --- /dev/null +++ b/webseite/show_answer.php @@ -0,0 +1,33 @@ + false, 'message' => 'Ungültige Eingaben.']); + exit; +} + +// Laden Sie die Aufgaben und Variablen entsprechend Ihrer Datenstruktur +$tasks = $topicData->getTasks(); + +if (!isset($tasks[$taskId])) { + echo json_encode(['success' => false, 'message' => 'Aufgabe nicht gefunden.']); + exit; +} + +$variables = $tasks[$taskId]->getVariables(); + +if (!isset($variables[$variableIndex])) { + echo json_encode(['success' => false, 'message' => 'Variable nicht gefunden.']); + exit; +} + +$correctAnswer = $variables[$variableIndex]->getCorrectAnswer(); + +echo json_encode(['success' => true, 'correct_answer' => $correctAnswer]); \ No newline at end of file diff --git a/webseite/topic.php b/webseite/topic.php index d5f154c..5c01dfa 100644 --- a/webseite/topic.php +++ b/webseite/topic.php @@ -32,6 +32,7 @@ if (!isset($topicData)) { + @@ -124,27 +125,40 @@ if (!isset($topicData)) {
- getText(), ENT_QUOTES, 'UTF-8'); ?> + Aufgabe ' . ($taskIndex + 1) . ': ' . htmlspecialchars($task->getText(), ENT_QUOTES, 'UTF-8'); ?>
-