Hallo,
nachdem ich gesehen habe, dass Du eine Uni-Email hast, gehe ich davon aus, dass LimeSurvey auch auf dem Uni-Server installiert ist.
Damit erübrigt sich natürlich ein ajax call.
Aber es gibt natürlich auch eine built-in Lösung.
In meinem angehängten Beispiel habe ich mich auf 50 Items beschränkt und zeige es auch nur für die Werte 1/2.
Die Erweiterung überlasse ich Euch.
Außerdem ist die Matrix keine Pflichtfrage; dann uss man beim Testen nicht immer alles anklicken.
Ich zeige "Gruppe für Gruppe" an, da alle Gleichungen noch nicht versteckt sind (ist zum Testen besser) und man daher nicht alle durchklicken muss.
In der Gruppe "GRechne" sind sämtliche Gleichungen, die nach dem Test natürlich versteckt werden müssen.
1. "eqZahl1" und "eqZahl6". Hier wird gezählt, wieviele Items mit 1 bzw. 6 bewertet wurden.
2.a. "eqJoinLow1". Es wird ein string erzeugt, der die Codes der Teilfragen enthält, die mit "1" bewertet wurden.
2.b. "eqJoinLow2". Falls nötig (wir haben noch keine 10): Es wird ein string erzeugt, der die Codes der Teilfragen enthält, die mit "2" bewertet wurden.
2.c. "eqJoinLowA". Die beiden strings werden zum Endstring zusammengefügt.
Die hinzugefügten - und auch wieder entfernten - Buchstaben dienen dazu, dass dies nicht als Zahl interpretiert wird. Dann gäbe es nämlich evtl. einen Überlauf.
Nun folgt fünfmal dasselbe Procedere, um die fünf zufälligen Codes zu erzeugen.
3.a. "eqRandLowA". Es wird eine Zufallszahl zwichen "0" und der Anzahl der im String enthaltenen Codes (-1) erzeugt.
3.b. "wertLow1". Der Code wird aus dem String extrahiert.
3.c. "eqJoinLowB". Der Code wird aus dem String entfernt.
4.a. "eqRandLowB". Es wird eine Zufallszahl zwichen "0" und der Anzahl der im String enthaltenen Codes (-1) erzeugt.
4.b. "wertLow2". Der Code wird aus dem String extrahiert.
4.c. "eqJoinLowC". Der Code wird aus dem String entfernt.
...
Am Ende werden die fünf so erhaltenen Codes wieder zusammengefügt
8. "listLow". Am Ende werden die fünf so erhaltenen Codes wieder zusammengefügt
Und man erhält eine Zeichenkette wie diese:
#04, 34, 21, 11, 39,
Nun kann man in die Teilfragenrelevanz der folgenden Frage - die ja nur diese 5 Items anzeigen soll - schreiben:
QX_SQ001: strpos(listLow,"01,")>0
...
QX_SQ002: strpos(listLow,"02,")>0
QX_SQ044: strpos(listLow,"44,")>0
...
Wichtig ist das führende Zeichen (hier "#"). Diese verhindert, dass der Code "04," an der Stelle "0" gefunden wird (die Programmiersprache beginnt die Zählung bei "0".
"strpos == 0" bedeutet aber auch: "Nicht gefunden".
Daher ist mit diesem Zeichen der erste gefundene Index mindestens "1".
Und auch die Kommata haben ihren Sinn.
Ohne diese sähe die Zeichenkette z.B. so aus:
Codes "01", "23", "54", "78"
"01235478"
Dann würden aber auch mit "strpos" die Werte "12" oder "47" gefunden.
Jetzt müsst Ihr also nur "eqJoinLow1" und "eqJoinLow2" auf Eure Itemzahl zu erweitern.
Und dann das Ganze noch einmal für die 5/6 Bewertung zu kopieren und anpassen.
Zum Schluss hat man dann eine "listHigh".
Oder wenn diese zehn Items in eine Frage kommen, fügt man eben alle zehn wertLow1,... wertHigh5 zusammen.
Joffm
P.S.
Falls Du an derselben Studie wie Nathalie arbeitest (dieselbe E-Mail), dann solltet Ihr auch einen gemeinsamen Thread aufmachen.