Dürfen/sollen Bilder doppelt vorkommen?
Sollte man, denke ich, vermeiden.
Und geht es nur darum, eines der beiden Bilder auszuwählen; denn dann könntest Du ja den Fragetyp "image select" benutzen.
Hier ein erster Vorschlag:
Ich hoffe, Du hast das Rec ht, javascript einzubauen.
In eine Frage vom Typ "mehrfache kurze Texte" (im Beispiel habe ich sie "QPool" genannt) fügst Du dieses script (im Quellcode-Modus) ein:
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 with 50 characters
var arr = ["01", "02", "03", "04", "05", "06", "07", "08", "09", 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50];
// Shuffle the array
arr = shuffle(arr);
arrfinal1 = arr.slice(0,10).join('');
arrfinal2 = arr.slice(10,20).join('');
$('#question{QID} input[type="text"]:eq(0)').val("#"+arrfinal1);
$('#question{QID} input[type="text"]:eq(1)').val("#"+arrfinal2);
});
</script>
Es ist ziemlich selbsterklärend.
Es wird eine Matrix mit 50 Elementen erzeugt.
Diese wird umgerührt.
Dann werden die ersten 10 Elemente genommen und in die erste Teilfrage eingefügt, die zweiten 10 in die zweite Teilfrage.
Dann siehst Du z.B. dieses
Wenn Du nun Deine Bilder sinnvoll benennst, wie "Bild01.jpg", "Bild02.jpg",...
kannst Du diese nun direkt in die Frage einfügen, indem Du immer die ersten beiden Stellen, die zweiten beiden Stellen der beiden Teilfragen abgreifst.
Dazu dient die Funktion "substr(Q1,x,y)"
Falls Du es noch nicht getan hast, lies hier über die implementierten Funktionen
[url]
www.limesurvey.org/manual/ExpressionScri...mplemented_functions
[/url]
Damit könnte sich folgender Fragetext ergeben, hier der Quellcode:
Code:
<div class="col-sm-6"><img class="img-responsive center-block" src="/upload/survey/{SID}/images/Bild{substr(QPool_1,1,2)}.jpg" /></div>
<div class="col-sm-6"><img class="img-responsive center-block" src="/upload/survey/{SID}/images/Bild{substr(QPool_2,1,2)}.jpg" /></div>
Und als Ergebnis
Hier das Beispiel als lss.
Nur für 6 Gruppen
Zu beachten; ich habe nicht mehr als 18 dieser Bilder; daher werden wohl manche nicht gezeigt.
Das verbesserte Layout ist nur in B1.
Nach der Testphase wird die Frage "QPool" mittels der css-Klasse "hidden" versteckt. In "Anzeige".
Dasselbe Procedere kann man auch mit dem Fragetyp "image select" durchziehen.
Dabei wird dann das Bild angeklickt, welches man wählen möchte.
Hier ganz schnell ohne viel Styling
Und jetzt kommt der Nachschlag:
Solltest Du keine Rechte haben, javascript zu benutzen (manche/viele Uni-admins verbieten dies - wohl nicht ohne Grund) kannst Du es natürlich auf die traditionelle Weise machen.
Ziehen aus einer Urne ohne Zurücklegen.
Das geht auch mit den eingebauten Funktionen von LimeSurvey.
1. Prinzipiell erstellt man sich wieder einen langen string.
2. Erstellt eine Zufallszahl zwischen 1 und der (Länge des Strings)/2
3. Entnimmt dem String das Zahlenpaar an dieser Stelle
4. Löscht das Zahlenpaar an dieser Stelle
und fährt fort mit 2. bis man seine 20 Zahlen beisammen hat.
Habe ich hier im Forum vor einiger/längerer Zeit auch beschrieben.
Bis dann
Joffm