Wie besprochen hier der Code:
1) Code für die Randomisierung der Probanden (die Seiten NF00, AG00 etc. beinhalten den Code zur Randomisierung der nachfolgenden Bilder mittels Seitenkennung):
$zahl = value('RA01'); // Auslesen der gezogenen Zufallszahl
// Bilder in Abhängigkeit von der Zahl anzeigen
// (dafür wird HTML-Code verwendet)
if (value('RA01') == 1) { // Naturfotos
goToPage('NF00');
} elseif(value('RA01') ==2) { // Naturgemälde
goToPage('NG00');
} elseif(value('RA01') ==3) { // Stadtfotos
goToPage('SF00');
} elseif(value('RA01') ==4) { // Stadtgemälde
goToPage('SG00');
} elseif(value('RA01') ==5) { // Abstrakte Gemälde
goToPage('AG00');
}
2) Beispielcode zur Randomisierung von einer der Gemäldebedingungen auf der Seite AG00 + Verhinderung der Wiederholung v. Künstlern (bei Bedingungen, die Fotos verwenden wird mit nur mit shuffle() randomisiert:
$kuenstler = [
'AG01' => 1, // Alexej von Jawlensky
'AG02' => 2, // Arthur Dove
'AG03' => 3, // Hilma af Klimt
'AG04' => 4, // Marsden Hartley
'AG05' => 5, // Paul Klee
'AG06' => 6, // Theo Van Doesburg
'AG07' => 7, // Dixon
'AG08' => 8, // Schwitters
'AG09' => 9, // Archile Gorky
'AG10' => 10, // Maletwitsch
'AG11' => 10, // Malewitsch
'AG12' => 11, // Michail Matjuschin
'AG13' => 12, // Ola Rosanova
'AG14' => 5, // Paul Klee
'AG15' => 5, // Paul Klee
'AG16' => 5, // Paul Klee
'AG17' => 5, // Paul Klee
'AG18' => 5, // Paul Klee
'AG19' => 13, // Moholy
'AG20' => 13, // Moholy
'AG21' => 13, // Moholy
'AG22' => 13, // Moholy
'AG23' => 13, // Mondrian
'AG24' => 14, // Mondrian
'AG25' => 14, // Mondrian
'AG26' => 14, // Mondrian
'AG27' => 14, // Mondrian
'AG28' => 12, // Olga Rosanova
'AG29' => 15, // Chashnik
'AG30' => 15, // Chashnik
'AG31' => 15, // Chashnik
'AG32' => 16, // Kliun
'AG33' => 16, // Kliun
'AG34' => 17, // Otto Freundlich
'AG35' => 18, // Amadeo de Souza Cardoso
];
$seiten = array_keys($kuenstler);
do {
shuffle($seiten);
$lastOne = -1;
$double = false;
foreach ($seiten as $seite) {
if ($kuenstler[$seite] == $lastOne) {
$double = true;
}
$lastOne = $kuenstler[$seite];
}
} while ($double);
$seiten[] = 'AG FAKE';
setPageOrder($seiten);
3) **Auf jeder Seite: Einblenden des Schiebereglers nach 5 Sek. (in diesem Fall PR02)
Bei "Click" weiter zum nächsten Bild:**
<!--
SoSciTools.submitButtonsHide();
// Funktion zum Einblenden der Knöpfe
function showContent() {
var content = document.getElementById("PR02_qst");
// Den normalen Anzeigemodus wiederherstellen
content.style.display = "";
}
// Nach dem Laden der Fragebogen-Seite das Script starten
SoSciTools.attachEvent(window, "load",
function() {
// Objekt heraussuchen
var content = document.getElementById("PR02_qst");
// Ausblenden
content.style.display = "none";
// Den Timer starten
window.setTimeout(showContent, 5000); // Nach 5 Sek = 5.000 ms
}
);
SoSciTools.attachEvent(window, "load", function() {
var slider = SoSciSliders.getSlider("PR02_01");
// Das "click" Event wird aufgerufen, wenn der Teilnehmer den Schieberegler setzt/bewegt
slider.addEventListener("click", function() {
if (slider.getValue() > -2) {
SoSciTools.submitPage();
}
});
});
// -->
</script>
4) Nun die Frage: Kann ich den bereits verwendeten Code dazu nutzen, um die Anzeige der 35 Bilder mittels loopPage()-Funktion zu vereinfachen, anstelle der Verwendung von mind. 175 Fragebogenseiten und mehreren goToPage-Verstrickungen?
Tausend Dank! :)