Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus: Ihre LimeSurvey-Version: Version 5.4.7 Eigener Server oder LimeSurvey-Cloud: LimeSurvey-Cloud Genutzte Designvorlage: Erben [fruity]
==================
Hallo
Ich muss bei einer Matrix-Frage zwei Blöcke erstellen bei den Teilfragen. Es würde mehr oder weniger so aussehen:
Frage?
Überschrift Teilfrage (Block 1)
a) Teilfrage
b) Teilfrage
c) Teilfrage
d) Teilfrage
e) Teilfrage
f) Teilfrage
g) Teilfrage
Überschrift Teilfrage (Block 2)
a) Teilfrage
b) Teilfrage
c) Teilfrage
d) Teilfrage
e) Teilfrage
f) Teilfrage
+ Antwortoptionen
Ich muss das so machen, dass die Teilfragen innerhalb des jeweiligen Blocks bleiben und die auch randomisieren... leider weiß ich nicht wie ich diese Blöcke mit Überschrift erstellen kann oder wie die Teilfragen innerhalb des Blocks bleiben können.
Ich würde zwei Fragen daraus machen, bei beiden einen zusätzlichen Header (siehe mein Tutorial "Matrizen")
und dann diese beiden Fragen mit den css-Klassen "no-bottom" und "no-question" zusammenfügen.
Schicke dazu einmal den lss Export dieser relevanten Fragen.
Irgendwie so
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Vielen Dank für die schnelle Antwort!! Das Tutorial hat mir sehr gut geholfen... allerdings sind neue Fragen entstanden
Im Anhang finden Sie die Frage (.lsq). Es gibt aber folgende Probleme:
- Wenn ich versuche die Antworten (Y-Achse) zu randomisieren, gelangen die Antworten aus dem zweiten Block ins 1... es muss tatsächlich so sein, dass die ersten 7 Antworten in der Y-Achse in einem Block bleiben und die letzten 6 Antworten in einem Block.
- Man kann mehrere Antworten auf der X-Achse anklicken, ich muss das aber so einstellen, dass man nur eine Antwort anklicken kann...
Bitte, weder lsq. noch lsg-Exporte, nur lss.
1. Das Beispiel im Tutorial zeigt ja auch eine Matrix(Zahlen).
Klar, dass dies anepasst werden muss, da ja in der x-Achse keine Teilfragen sind (subquestions) sondern Antworten (answers).
Damit habe ich schon verraten, was in dem script geändert werden muss.
In Kürze werde ich dies im pdf des Tutorials zufügen.
2. Mein gezeigtes Beispiel enthält ja auch zwei separate Fragen, die jede für sich randomisiert wird.
Mit etwas css werden sie optisch zusammengefügt.
Eben die beiden css-Klassen "no-bottom" und "no-question".
Diese werden mehrmals hier im Forum gezeigt. Einfach danach suchen.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Allerdings bin ich mir noch unsicher wo ich das eingeben muss. Ich habe versucht:
- bei beide Fragen -> bei Anzeige -> bei CSS-Klasse(n) das ganze einzugeben = hat nicht geklappt
- bei Frage 1 -> bei Anzeige -> bei CSS-Klasse(n) -> no bottom einzugeben
- bei Frage 2 -> bei Anzeige -> bei CSS-Klasse(n) -> no question einzugeben= hat nicht geklappt
- bei Frage 1 -> in Quellencode -> no bottom einzugeben
- bei Frage 2 -> in Quellencode -> bei CSS-Klasse(n) -> no question einzugeben= hat nicht geklappt
- bei Konfiguration -> Designvorlage -> Erweitern -> custom.css das einzugeben
= hat nicht geklappt
leider bin ich noch ganz neu mit LimeSurvey und kenne mich noch nicht so gut aus, kann sein dass ich was ganz dummes ausprobiert habe
im Anhang habe ich die .lss Datei zu den zwei Fragen hinzugefügt
- bei Frage 1 -> bei Anzeige -> bei CSS-Klasse(n) -> no bottom einzugeben
- bei Frage 2 -> bei Anzeige -> bei CSS-Klasse(n) -> no question einzugeben= hat nicht geklappt
- bei Konfiguration -> Designvorlage -> Erweitern -> custom.css das einzugeben
Das ist genau das richtige Procedere.
Wobei natürlich etwas unklar ist, wie Du das Letzte wirklich gemacht hast.
Hast Du überhaupt das erweiterte Theme dann als zu benutzendes Theme ausgewählt?
Dann hast Du für alle späteren Zwecke dieses Feature griffbereit.
Hier siehst Du dieses css-snippet in einem meiner themes
In meinem Beispiel habe ich jetzt diese beiden Klassen einfach in die erste Frage der beiden eingefügt.
Zusätzlich eine Klasse "no-question2", um bei der zweiten Frage auch die Antwortoptionen auszublenden.
Nun aber noch etwas Substantielleres:
Du willst doch eine Matrix und keine Matrix(Zahlen).
Hier ist deine Einstellung "Maximale Antworten: 1" natürlich nicht zielführend, da sie bedeutet, dass Du in der gesamten Matrix nur ein einziges Kreuz machen kannst.
Hier müsstest Du validieren mit etwas wie
"count(self.sq_Y001)<2 and count(self.sq_Y002)<2 and count(self.sq_Y003)<2 and count(self.sq_Y004)<2 and ..."
wobei Du dann natürlich die Teilfragen der x- und y-Achse unterschiedlich kodieren musst (ich nehme immer "Y001,Y002,..." und "X001,X002,..."); sonst kannst Du nicht die Variable "self" benutzen und musst alles einzeln hineinschreiben.
Also wähle als Fragetyp auch eine Matrix.
Ich hatte ja schon verraten, wie man das script dafür umbauen muss.
da ja in der x-Achse keine Teilfragen sind (subquestions) sondern Antworten (answers)
Es genügt also, an diesen beiden Stellen
Code:
var columnsLength = $('tr.subquestion-list:eq(0) > *', thisQuestion).length;// Insert the new rows
$('tr.subquestion-list:eq(0)', thisQuestion).before('<tr class="sub-header-row"><th colspan="'+columnsLength+'">'+subHeading1+'</th></tr>');
"subquestion-list" in "answers-list" zu ändern.
Code:
var columnsLength = $('tr.answers-list:eq(0) > *', thisQuestion).length;// Insert the new rows
$('tr.answers-list:eq(0)', thisQuestion).before('<tr class="sub-header-row"><th colspan="'+columnsLength+'">'+subHeading1+'</th></tr>');
Zur dieser Frage selbst sage ich lieber nichts.
Da ist schon ein ziemlich starker Bias drin. (Komparative, Skala nur in einer Richtung, Unklarheit, wer etwas tut oder tun soll (die Gesellschaft?)
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: Ildelmloi_249477