- Posts: 3
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Antworten mit Subgruppen/Untergruppen
- sophia_ger
- Topic Author
- Offline
- New Member
Less
More
2 years 11 months ago - 2 years 11 months ago #215425
by sophia_ger
Antworten mit Subgruppen/Untergruppen was created by sophia_ger
Hallo allerseits!
Ich suche nach einer Möglichkeit bei meinen Antwortmöglichkeiten einer Frage vom Typ "Liste (Optionsfelder)" Subgruppen bzw. Untergruppen erstellen zu können. Das Ganze habe ich mir so vorgestellt:
Frage: Welche Ausbildung haben Sie?
Antwort:
Vielen Dank für eure Hilfe!
PS: Ich nutze die Version 3.22.1+200129.
Ich suche nach einer Möglichkeit bei meinen Antwortmöglichkeiten einer Frage vom Typ "Liste (Optionsfelder)" Subgruppen bzw. Untergruppen erstellen zu können. Das Ganze habe ich mir so vorgestellt:
Frage: Welche Ausbildung haben Sie?
Antwort:
- Facharzt für Allgemeinmedizin
- Facharzt für Dermatologie
- Facharzt für Innere Medizin
- Hämatologie und Onkologie
- Gastroenterologie
- Kardiologie
- Nephrologie
Vielen Dank für eure Hilfe!
PS: Ich nutze die Version 3.22.1+200129.
Last edit: 2 years 11 months ago by sophia_ger.
The topic has been locked.
- Joffm
- Away
- LimeSurvey Community Team
Less
More
- Posts: 12916
- Thank you received: 3976
2 years 11 months ago #215429
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Antworten mit Subgruppen/Untergruppen
Hallo,
gut, das können wir machen.
Wenn Du so codierst,
und Du diese Zeilen im script siehst,
, // First-level sub-question codes
// Second-level sub-question codes
wird Dir schnell klar, wie es funktioniert.
Dazu fügst Du folgendes javascript und auch das css Stückchen in den Fragetext ein (im Quellcode-Modus) (immer vorausgesetzt, Du hast die Rechte dazu)
Viel Erfolg
Joffm
PS.
Kurze Frage am Schluss:
Woher kommen denn diese ganzen "Style Definitions"?
gut, das können wir machen.
Wenn Du so codierst,
und Du diese Zeilen im script siehst,
, // First-level sub-question codes
// Second-level sub-question codes
wird Dir schnell klar, wie es funktioniert.
Dazu fügst Du folgendes javascript und auch das css Stückchen in den Fragetext ein (im Quellcode-Modus) (immer vorausgesetzt, Du hast die Rechte dazu)
Code:
<script type="text/javascript" charset="utf-8"> // A function to handle "child" checkboxes function dependantCheckboxes(qID, primaryCodes, secondaryCodes) { // Identify the elements annd assign classes/attributes var thisQuestion = $('#question'+qID); thisQuestion.addClass('with-dependants'); $.each(primaryCodes, function(i, val) { var thisItem = $('li[id$="X'+qID+val+'"]'); $(thisItem).addClass('level-1 parent-item').attr('data-code', val).attr('data-level', '1'); }); $.each(secondaryCodes, function(i, val) { var thisItem = $('li[id$="X'+qID+val+'"]'); var thisParent1 = $(thisItem).prevAll('li[data-level="1"]:eq(0)'); $(thisItem).addClass('level-2 parent-item child-item').attr('data-code', val).attr('data-level', '2').attr('data-parent-1', $(thisParent1).attr('data-code')); }); // A function to handle the states of child items function handleChildren(el) { var thisitem = $(el).closest('li'); var thisCode = $(thisitem).attr('data-code'); var thisLevel = $(thisitem).attr('data-level'); var thisChildren = $('li[data-level="'+(Number(thisLevel)+1)+'"][data-parent-'+thisLevel+'="'+thisCode+'"]', thisQuestion); // Hide/show the secondary answers accordingly if (!$(el).is(':checked')) { $(thisChildren).fadeOut(300, function(e) { $('input:checkbox', thisChildren).prop('checked', false).trigger('change'); }); } else { $(thisChildren).fadeIn(300); } } // Initial states of the secondary answers $('.parent-item input:checkbox', thisQuestion).each(function(i) { handleChildren($(this)); }); // A listener on the primary answer to show or hide secondary answers $('.parent-item input:checkbox', thisQuestion).on('change', function(e) { handleChildren($(this)); }); } $(document).on('ready pjax:scriptcomplete',function(){ dependantCheckboxes( {QID}, ['SQ1', 'SQ2', 'SQ3'], // First-level sub-question codes ['SQ31','SQ32','SQ33', 'SQ34'] // Second-level sub-question codes ); }); </script>
Code:
<style type="text/css">.with-dependants .child-item { display: none; } .with-dependants li.level-2 { margin-left: 2.5em; } .with-dependants li.level-3 { margin-left: 5em; } </style>
Viel Erfolg
Joffm
PS.
Kurze Frage am Schluss:
Woher kommen denn diese ganzen "Style Definitions"?
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: sophia_ger
The topic has been locked.
- Joffm
- Away
- LimeSurvey Community Team
Less
More
- Posts: 12916
- Thank you received: 3976
2 years 11 months ago #215451
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Antworten mit Subgruppen/Untergruppen
Was ich wieder übershen habe, da es für mich ganz selbstverständlich war:
Das geht natürlich nicht mit einem "Liste(Optionsfelder)".
Du hast ja zwei Nennungen in der Frage.
Daher ist dies eine Mehrfachnennung.
Du musst dann entsprechend validieren, dass nur eine der übrigen Nennungen angekreuzt wird, und falls "Innere" auch eine Untergruppe der angekreuzt wird.
Zum Beispiel könntest Du "Allgemein" und "Derma" als exclusive Option anlegen.
Und als Validierung wäre so etwas ganz nett (für "self", usw. lies bitte im Handbuch
[url] manual.limesurvey.org/ExpressionScript_-...#.22Self.22_variable [/url]
Jedenfalls bedeutet dieses hier: Zähle alle ausgewählten Teilfragen, wo im Fragecode "SQ3" auftaucht; also "SQ3", "SQ31", "SQ3Fitzliputzli", usw.
Frage-Validierungsgleichung:
(count(self.sq_SQ3.NAOK)==0) OR (count(self.sq_SQ3.NAOK)==2)
Und als Validierungshinweis:
{if(count(self.sq_SQ3.NAOK)==1,"Bitte, wählen Sie eine Fachrichtung der Inneren aus",if( count(self.sq_SQ3.NAOK)>2,"Bitte nur eine Fachrichtung der Inneren auswählen!",""))}
Joffm
Das geht natürlich nicht mit einem "Liste(Optionsfelder)".
Du hast ja zwei Nennungen in der Frage.
Daher ist dies eine Mehrfachnennung.
Du musst dann entsprechend validieren, dass nur eine der übrigen Nennungen angekreuzt wird, und falls "Innere" auch eine Untergruppe der angekreuzt wird.
Zum Beispiel könntest Du "Allgemein" und "Derma" als exclusive Option anlegen.
Und als Validierung wäre so etwas ganz nett (für "self", usw. lies bitte im Handbuch
[url] manual.limesurvey.org/ExpressionScript_-...#.22Self.22_variable [/url]
Jedenfalls bedeutet dieses hier: Zähle alle ausgewählten Teilfragen, wo im Fragecode "SQ3" auftaucht; also "SQ3", "SQ31", "SQ3Fitzliputzli", usw.
Frage-Validierungsgleichung:
(count(self.sq_SQ3.NAOK)==0) OR (count(self.sq_SQ3.NAOK)==2)
Und als Validierungshinweis:
{if(count(self.sq_SQ3.NAOK)==1,"Bitte, wählen Sie eine Fachrichtung der Inneren aus",if( count(self.sq_SQ3.NAOK)>2,"Bitte nur eine Fachrichtung der Inneren auswählen!",""))}
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The following user(s) said Thank You: sophia_ger
The topic has been locked.
- holch
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 11655
- Thank you received: 2742
2 years 11 months ago #215463
by holch
I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
Replied by holch on topic Antworten mit Subgruppen/Untergruppen
Oder einfach zwei Fragen drauss machen und die Folgefrage zu den Subspezialitäten halt per Relevanzgleichung ein-/ausblenden.
Fände ich sowieso "sauberer".
Fände ich sowieso "sauberer".
I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
The following user(s) said Thank You: sophia_ger
The topic has been locked.
- Joffm
- Away
- LimeSurvey Community Team
Less
More
- Posts: 12916
- Thank you received: 3976
2 years 11 months ago #215474
by Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
Replied by Joffm on topic Antworten mit Subgruppen/Untergruppen
Klar, das ist der Standard.
Diese 2-Level-Lösung hat halt etwas mehr appeal.
Bringt einfach einmal ein bisschen Abwechslung für den Teilnehmer.
So viele Umfragen, die ich hier sehe, sind so etwas von langweilig (look&feel), dass jedes bisschen Gamification willkommen ist.
Joffm
Diese 2-Level-Lösung hat halt etwas mehr appeal.
Bringt einfach einmal ein bisschen Abwechslung für den Teilnehmer.
So viele Umfragen, die ich hier sehe, sind so etwas von langweilig (look&feel), dass jedes bisschen Gamification willkommen ist.
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
- holch
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 11655
- Thank you received: 2742
2 years 11 months ago #215475
by holch
I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
Replied by holch on topic Antworten mit Subgruppen/Untergruppen
Naja, ob jetzt diese Untergruppe die Umfrage attraktiver macht, darüber lässt sich streiten. Hahahaha.
I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
The topic has been locked.
- sophia_ger
- Topic Author
- Offline
- New Member
Less
More
- Posts: 3
- Thank you received: 0
2 years 11 months ago #215627
by sophia_ger
Replied by sophia_ger on topic Antworten mit Subgruppen/Untergruppen
Hallo ihr zwei!
Vielen Dank für eure Tips und die Hilfe! Ich musste mich erstmal noch weiter in die Thematik einlesen und hab dann ein bisschen herumprobiert. Den Vorschlag von Joffm habe ich leider nicht ordentlich geschafft umzusetzen, jedoch hat der Tipp mit den Relevanzgleichungen von holch gut funktioniert.
Herzlichen Dank nochmal!
Vielen Dank für eure Tips und die Hilfe! Ich musste mich erstmal noch weiter in die Thematik einlesen und hab dann ein bisschen herumprobiert. Den Vorschlag von Joffm habe ich leider nicht ordentlich geschafft umzusetzen, jedoch hat der Tipp mit den Relevanzgleichungen von holch gut funktioniert.
Herzlichen Dank nochmal!
The topic has been locked.
- sophia_ger
- Topic Author
- Offline
- New Member
Less
More
- Posts: 3
- Thank you received: 0
2 years 11 months ago #215628
by sophia_ger
Replied by sophia_ger on topic Antworten mit Subgruppen/Untergruppen
Die style definitions sind mir anfangs gar nicht aufgefallen, hab sie inzwischen rausgelöscht. Vermute das kam daher, dass ich die limesurvey Version reinkopiert habe und dabei auch noch was anderes mitgerutscht ist
The topic has been locked.
Moderators: Joffm