Webbserver - Love Blomberg

Show sourcecode

The following files exists in this folder. Click to view.

public_html/GYA2/

admin.php
admin_login.php
api/
config.php
css/
db_setup.php
index.php
js/
results.php
tests/

results.php

73 lines UTF-8 Unix (LF)
<?php require __DIR__ '/config.php'?>
<!DOCTYPE html>
<html lang="sv">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Experimentet klart</title>
    <link rel="stylesheet" href="css/style.css">
</head>
<body>
    <div class="container">
        <h1>Tack!</h1>
        <p>Du har slutfört alla tre tester. Dina resultat har sparats.</p>

        <div class="results-summary" id="summary">
            <!-- Populated by JS -->
        </div>

        <a href="index.php" class="btn btn-primary" id="new-session">Starta ny session</a>
    </div>

    <script src="js/common.js"></script>
    <script>
        (async function() {
            const pid = sessionStorage.getItem('participant_id');

            // Mark session complete
            if (pid) {
                try {
                    await apiPost('api/complete_session.php', {
                        participant_id: parseInt(pid, 10)
                    });
                } catch (e) {
                    console.error('Failed to complete session:', e);
                }
            }

            // Show summary from sessionStorage
            const summaryEl = document.getElementById('summary');
            const reactionTimes = JSON.parse(sessionStorage.getItem('reaction_times') || '[]');
            const mazeTime = sessionStorage.getItem('maze_time');
            const mazeMoves = sessionStorage.getItem('maze_moves');
            const simonLevel = sessionStorage.getItem('simon_level');

            let html = '';

            if (reactionTimes.length > 0) {
                const avg = Math.round(reactionTimes.reduce((a, b) => a + b, 0) / reactionTimes.length);
                const best = Math.min(...reactionTimes);
                html += '<div class="stat"><span class="stat-label">Snitt reaktionstid</span><span class="stat-value">' + avg + ' ms</span></div>';
                html += '<div class="stat"><span class="stat-label">Bästa reaktionstid</span><span class="stat-value">' + best + ' ms</span></div>';
            }

            if (mazeTime !== null) {
                html += '<div class="stat"><span class="stat-label">Labyrint tid</span><span class="stat-value">' + (parseInt(mazeTime) / 1000).toFixed(1) + ' s</span></div>';
                html += '<div class="stat"><span class="stat-label">Labyrint drag</span><span class="stat-value">' + mazeMoves + '</span></div>';
            }

            if (simonLevel !== null) {
                html += '<div class="stat"><span class="stat-label">Simon nivå nådd</span><span class="stat-value">' + simonLevel + '</span></div>';
            }

            if (html) {
                summaryEl.innerHTML = '<h2>Dina resultat</h2>' + html;
            }

            // Clear session data
            sessionStorage.clear();
        })();
    </script>
</body>
</html>