Hallo,
ist das jetzt alles?
Angefangen hat es mit 4 Fragen in unterschiedlicher Reihenfolge.
Dann waren es 4 aus 27 Fragen.
Und jetzt sind es 4 gepaarte Fragen aus 27 Paaren.
Und dazu muss ich sagen: Dann geht es so nicht.
Dazu musst Du alles total anders angehen.
Und zwar kannst Du 27 Gruppen erstellen mit den Paaren.
Damit später die Fragenpaare wieder randomisiert angezeigt werden, bekommen jetzt die GRUPPEN denselben Randomisierungsgruppennamen.
Und jetzt benötigst Du noch Deine Ziehung.
Dazu kannst Du eine Frage vom Typ "kurzer Text" erstellen mit folgenden javascript im Fragetext (Quellcode-Modus)
Code:
<script type="text/javascript" charset="utf-8">
function shuffle(array) {
var currentIndex = array.length, temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
// And swap it with the current element.
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
$(document).on('ready pjax:scriptcomplete',function(){
// Fill the array
var arr = [];
for (var i = 1; i < 28; i++) {
arr.push(('000'+i).slice(-2));
}
arr = shuffle(arr);
anumbers = arr.slice(0,4).join(',');
$('#question{QID} input[type="text"]').val("#"+anumbers+",");
// $('#question{QID}').hide();
});
</script>
Damit bekommst Du einen String mit vier zufälligen Zahlen aus den 27.
Im script ist diese Zeile
// $('#question{QID}').hide();
auskommentiert. D.h. die Frage wird angezeigt.
Dies ist zum Testen auch richtig. In der "scharfen" Umfrage werden die beiden Schrägstriche dann entfernt.
Desweiteren ist zu sagen, dass diese Frage nicht alleine in einer Gruppe sein kann. Also füge sie in irgendeine Gruppe am Start der Umfrage ein.
Gut, jetzt hast Du einen String mit 4 Zahlen.
Dann kannst Du genau diese 4 Gruppen anzeigen, indem Du die Relevanzgleichungen der Gruppen folgendermaßen setzt:
Gruppe 1: Ist die "01" im string? Ja, dann angezeigt, nein, dann nicht angezeigt.
Gruppe 2: Ist die "02" im string? Ja, dann angezeigt, nein, dann nicht angezeigt.
Usw.
Dazu nimmst Du die Funktion "
strpos"
Siehe hier.
[url]
www.limesurvey.org/manual/ExpressionScri...mplemented_functions
[/url]
Und jetzt weißt Du auch, warum ein "#"-Zeichen am Anfang steht.
Ohne dieses würde die Suche nach "03" den Index "0" ergeben.
Das bedeutet aber auch "nicht gefunden".
Daher die Raute; damit ist der kleinste Index auf jeden Fall 1.
Viel Erfolg
Joffm