- Posts: 14
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Matrix: Filter | Offene Nennung | Design
- apfelsinenwald1
- Topic Author
- Offline
- New Member
ich möchte eine Frage einbauen, zu der ich verschiedene Programmierungsfragen habe:
1. Wie kann ich noch eine Offene Nennung hinzufügen, die auch direkt mit den entsprechenden Antwortoptionen bewertet werden kann? Ich habe dazu dieses hier gefunden: www.limesurvey.org/forum/can-i-do-this-w...ther-answer?start=30 Bin mir aber nicht sicher, wo ich die Javascript-Codes konkret eingeben kann?
2. Wir möchten ganz am Anfang der Umfrage eine Filterfrage stellen. D.h. dass, wenn dort Antwort A gewählt wird, bei der hier angehängten Umfrage bestimmte Antworten abgefragt werden sollen und andere nicht. Es gibt also insgesamt ca 20 Angebote (wie Offener Treff / Partys, etc), diese sollen aber abhängig von der allerersten Frage erscheinen oder nicht. Ist so etwas in LimeSurvey möglich?
3. Bzgl Design: Kann man Teile der Antwortoptionen farblich abheben oder etwas nach rechts verschieben? Sodass "Gefällt sehr gut / Geht so / Gefällt nicht" beieinander stehen und "Haben wir nicht / Haben wir, nutze ich aber nicht" etwas weiter getrennt davon?
Ich danke euch vielmals für jeden kleinen Tipp im Voraus
- holch
- Offline
- LimeSurvey Community Team
- Posts: 11758
- Thank you received: 2753
So kannst du z.B. Frage Q2 nur einblenden, wenn in Frage Q1 die Antwortoption 5 gegeben wurde. Das würde dann in der Relevanz Gleichung der Frage Q2 so aussehen:
Q1==5
D.h. die Frage Q2 wird nur "relevant" (und damit gezeigt), wenn in Q1 der Antwortcode "5" ausgewählt wurde. Aber, wie diese Relevanz Gleichung aussehen muss, hängt natürlich immer von deiner Frage (Fragentyp) ab, auf die gefiltert werden soll. Für mehr Infos solltest du dir das Handbuch zum Expression Manager ansehen. Dort gibt es auch sehr viele Beispiele.
zu 3: Das geht sicher per CSS/Javascript, da kommt es aber immer auf das verwendete Template an. ABER: ich finde durch die Smilies oben ist das schon alles recht klar getrennt, finde ich.
I answer at the LimeSurvey forum in my spare time, I'm not a LimeSurvey GmbH employee.
No support via private message.
- Joffm
- Offline
- LimeSurvey Community Team
- Posts: 12790
- Thank you received: 3940
Naja, in dem Link ist doch ein Beispiel angefügt. Wie Du allerdings siehst, ist dies ein Beispiel, welcher fast 4 Jahre alt ist und für die Version 2.06.1. Wie kann ich noch eine Offene Nennung hinzufügen, die auch direkt mit den entsprechenden Antwortoptionen bewertet werden kann? Ich habe dazu dieses hier gefunden: www.limesurvey.org/forum/can-i-do-this-w...ther-answer?start=30 Bin mir aber nicht sicher, wo ich die Javascript-Codes konkret eingeben kann?
Es gibt da auch neueres, z.B. hier
www.limesurvey.org/forum/design-issues/1...tfield-others#176479
ebenfalls mit sample.
Stichwort: Teilfragen-Relevanz2. Wir möchten ganz am Anfang der Umfrage eine Filterfrage stellen. D.h. dass, wenn dort Antwort A gewählt wird, bei der hier angehängten Umfrage bestimmte Antworten abgefragt werden sollen und andere nicht. Es gibt also insgesamt ca 20 Angebote (wie Offener Treff / Partys, etc), diese sollen aber abhängig von der allerersten Frage erscheinen oder nicht. Ist so etwas in LimeSurvey möglich?
Du kannst die Spaltenbreite verändern; dann könntest Du z.B. die Spalte "Haben wir nicht" breiter machen, Text rechtsbündig, usw.3. Bzgl Design: Kann man Teile der Antwortoptionen farblich abheben oder etwas nach rechts verschieben? Sodass "Gefällt sehr gut / Geht so / Gefällt nicht" beieinander stehen und "Haben wir nicht / Haben wir, nutze ich aber nicht" etwas weiter getrennt davon?
Suche einmal nach "NPS" user "Elissa", glaube ich.
Ich werde selbst einmal gucken.
Joffm
P.S. Ich habe geguckt:
www.limesurvey.org/forum/can-i-do-this-w...rscale-in-limesurvey
Volunteers are not paid.
Not because they are worthless, but because they are priceless
- apfelsinenwald1
- Topic Author
- Offline
- New Member
- Posts: 14
- Thank you received: 0
Ich habe bspw. in einer Teilfrage die Gleichung drin: F0==1 or F0==2 . Die Frage erscheint aber weder 1 noch bei 2 noch bei 3. Also scheint es irgendwie keine Auswirkungen zu haben.
Was wäre der korrekte Befehl, wenn die Teilfrage SQ001 aus F5 nur gezeigt werden soll, wenn F0 mit 1 oder 2 beantwortet wurde?
Danke!!
- apfelsinenwald1
- Topic Author
- Offline
- New Member
- Posts: 14
- Thank you received: 0
Bislang schaut es bei mir so aus:
- Joffm
- Offline
- LimeSurvey Community Team
- Posts: 12790
- Thank you received: 3940
wenn Du schon so viele Fragen hast, die im Grunde die Basics angehen, dann solltest Du einmal Deine Versuche hier als lss-Export anhängen.
Wie sonst sollen wir Dir sagen, wo Du einen - wahrscheinlich - Tippfehler eingebaut hast?
Bis dann
Joffm
Volunteers are not paid.
Not because they are worthless, but because they are priceless
- apfelsinenwald1
- Topic Author
- Offline
- New Member
- Posts: 14
- Thank you received: 0
habe hier mal die relevanten Fragen in der lss Datei angehängt.
Letztlich geht es um die Filterfrage. Da haben bei mir die in der Teilfragen-Relevanz geschriebenen Punkte keine Auswirkung.
Und ich möchte das offene Nennungsfeld unten bei "other" in der 2.Frage drin haben.
Bin für jede Hilfe dankbar. Und ja, ich bin blutiger Anfänger
Grüße
- Joffm
- Offline
- LimeSurvey Community Team
- Posts: 12790
- Thank you received: 3940
ich habe Deinen Prototype nur einmal schnell geöffnet.
1. In der Matrixfrage ist das javascript-snippet ja gar nicht enthalten.
Das ist aber sicher in der Beispielstudie, die ich verlinkt habe, drin.
Denn das ist schließlich die Hauptsache.
2. Das hast Du geschrieben:
Aber dies ist in Deiner StudieIch habe bspw. in einer Teilfrage die Gleichung drin: F0==1 or F0==2
F0==A1 or F0==A2
Also etwas anderes.
Und das kann auch nicht funktionieren; im ersten Fall vergleichst Du mit Zahlen, "A1" und "A2" sind aber keine Zahlen, sondern Texte; also müssen sie mit Anführungszeichen versehen werden.
F0=="A1" or F0=="A2".
Daher plädiere ich immer dafür , diese default-Codes "A1", "A2", ... durch numerische Codes zu ersetzen.
Erleichtert die Auswertung später ungemein.
Denn Zahlen werden numerisch verglichen, also 1<2<10<21,
Texte aber alphabetisch, also "1"<"10"<"2"<"21"
Das javascript mache ich Dir dann später einmal hinein.
Bin etwas knapp mit der Zeit im Moment.
Joffm
Eigentlich kannst Du das auch selbst machen.
Hier noch einmal das script. Im Quelltext-Modus in den Fragetext der Matrix-Frage:
<script type="text/javascript" charset="utf-8"> $(document).ready(function() { // Identify the questions var thisQuestion = $('#question'+{QID}+''); var nextQuestion1 = $(thisQuestion).nextAll('.text-short:eq(0)'); var nextQuestion2 = $(thisQuestion).nextAll('.text-short:eq(1)'); var nextQuestion3 = $(thisQuestion).nextAll('.text-short:eq(2)'); var nextQuestions = $(nextQuestion1).add(nextQuestion2).add(nextQuestion3); // var nextQuestions = $(nextQuestion1); var nextLength = nextQuestions.length; var sqLength = ('tr.answers-list', thisQuestion).length; // Hide the short-text questions $(nextQuestions).hide(); // Move the hidden text inputs into the array for (i = 0; i < nextLength; i++) { var workingIndex = (sqLength - 1) - (nextLength - i); var nextQ = nextQuestions[i]; $('th.answertext:eq('+workingIndex+')', thisQuestion).append($('input[type="text"]', nextQ)).closest('tr').addClass('otherRow'); } // Some styling... $('input[type="text"]', thisQuestion).css({ 'width': '50%' }); // Handle the "Other" radios $('input[type="text"]', thisQuestion).on('keyup change',function(event){ event.stopPropagation(); var thisRow = $(this).closest('tr.answers-list'); if($.trim($(this).val()) == '') { $('input:radio[value!=""]', thisRow).prop('checked',false); $('input:radio[value=""]', thisRow).click(); } else { $('input:radio[value=""]', thisRow).prop('checked',false); } }); // Handle the "Other" text inputs $('.otherRow input.radio', thisQuestion).on('click',function(event){ var thisRow = $(this).closest('tr.answers-list'); if($(this).attr('value') == '') { $('input[type="text"]', thisRow).val(''); } }); // Validate the "Other" text inputs on submit if($('#movenextbtn, #movesubmitbtn').attr('data-inserted-other') != 'true') { // We're only doing this once on this page $('#movenextbtn, #movesubmitbtn').attr('data-inserted-other', 'true').on('click.insertedOther', function (event) { var otherError = 0; $('.array-flexible-row .otherRow').each(function(i) { if(($('input:radio[value!=""]:checked', this).length > 0 && $('input[type="text"]', this).val() == '') || ($('input:radio[value!=""]:checked', this).length == 0 && $('input[type="text"]', this).val() != '')) { otherError = 1; } }); if(otherError == 1) { alert('Please review your answer in the "Other" row(s).'); return false; } }); } }); </script>
Und wenn Du dann noch ein bisschen css einbaust, sind die Items auch linklsbündig; sieht m.E. besser aus.
<style> .ls-answers tbody .answertext { text-align: left; } </style>
Volunteers are not paid.
Not because they are worthless, but because they are priceless
- apfelsinenwald1
- Topic Author
- Offline
- New Member
- Posts: 14
- Thank you received: 0