Seite 10( Beginn dieses teils des Fragebogens): Initialisierung
PHP Code
if (!isset($speakers)) {
$all = ['audio1','audio2','audio3','audio4','audio5','audio6','audio7']; // deine Audios
shuffle($all);
registerVariable('speakers', implode(',', $all));
registerVariable('round', 1);
registerVariable('finished', 0);
}
Seite 11 (runde)
PHP
if (!isset($speakers)) $speakers = '';
if (!isset($round)) $round = 1;
if (!isset($finished)) $finished = 0;
// Platzhalter ersetzen
replace('%speakers%', $speakers);
replace('%round%', $round);
replace('%finished%', $finished);
return 'ok';
HTML:
<script>
// Hole die Variablen
let speakers = '%speakers%'.split(','); // Die Liste der Audios
let round = parseInt('%round%'); // Aktuelle Runde
let finished = parseInt('%finished%'); // Status, ob das Experiment abgeschlossen ist
// Wenn das Experiment abgeschlossen ist oder alle Runden durch sind, leite zur Endseite weiter
if (finished === 1 || round > 5 || speakers.length === 0) {
SoSciTools.submitPage(); // Weiter zur Endseite
}
// Wähle zufällig einen Sprecher (Audio) aus
let index = Math.floor(Math.random() * speakers.length);
let speaker = speakers[index];
// Debugging: Prüfe, ob die Variablen korrekt geladen wurden
console.log('Sprecher:', speaker);
console.log('Runde:', round);
// Füge den Audio-Player zum Dokument hinzu
document.write('<h3>Runde ' + round + '</h3>');
document.write('<audio controls src="media/' + speaker + '.mp3"></audio><br><br>');
// Füge den Audio-Player zum Dokument hinzu
document.body.appendChild(audioElement);
// Erstelle einen Button, der das Audio abspielt
let playButton = document.createElement('button');
playButton.textContent = "Audio abspielen";
playButton.onclick = function() {
audioElement.play();
};
// Füge den Button ebenfalls zum Dokument hinzu
document.body.appendChild(playButton);
// Buttons für die Antworten
function send(response) {
let newSpeakers = [...speakers]; // Kopiere die Liste der Sprecher
if (response === 'yes') {
SoSciTools.sendValue('finished', 1); // Experiment abschließen
} else if (response === 'no') {
newSpeakers.splice(index, 1); // Entferne den Sprecher aus der Liste
SoSciTools.sendValue('speakers', newSpeakers.join(','));
} else if (response === 'maybe') {
SoSciTools.sendValue('speakers', newSpeakers.join(',')); // Behalte den Sprecher
}
SoSciTools.sendValue('round', round + 1); // Erhöhe die Runde
SoSciTools.submitPage(); // Gehe zur nächsten Seite
}
// Buttons für die Antworten
document.write('<button onclick="send(\'yes\')">Das ist Sprecher X</button> ');
document.write('<button onclick="send(\'no\')">Das ist er nicht</button> ');
document.write('<button onclick="send(\'maybe\')">Bin mir nicht sicher</button>');
</script>
Bis hierhin kwird mir dann nur ein Button 'weiter' angezeigt, und beim Audioplayer ' Fehler'
Seite12 Auswertung
HTML:
<script>
// Hole die Variablen
let speakers = '%speakers%'.split(','); // Die Liste der Audios
let round = parseInt('%round%'); // Aktuelle Runde
let finished = parseInt('%finished%'); // Status
PHP:
$speakers = explode(',', $speakers);
$nextRound = [];
foreach ($speakers as $speaker) {
$antwort = value($speaker); // Eingabe aus JavaScript abrufen
if ($antwort == 'Das ist Sprecher X') {
goToPage('end'); // Erfolg: Direkt zum Ende
} elseif ($antwort == 'Bin mir nicht sicher') {
$nextRound[] = $speaker;
}
}
// Aktuelle Runde erhöhen
$round++; // $round kommt aus den gespeicherten Variablen
if ($round > 5 || count($nextRound) == 0) {
put('finished', 1);
goToPage('end');
} else {
shuffle($nextRound);
put('speakers', implode(',', $nextRound));
put('round', $round);
goToPage('next_round');
}
html('...');
Vielleicht hilft das weiter?
LG