Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Exklusiv Option, die alles ausser eine Antwort ausschliesst

  • Phinea
  • Phinea's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 5 months ago #221459 by Phinea
Hallo zusammen

Gerne würde ich bei einer Mehrfachauswahl mit 5 Antwortoptionen (inklusive der „Anderes“ Option) eine Exklusiv-Option einfügen, welche an vierter Stelle steht und die drei ersten Optionen, aber nicht die fünfte „Anderes“ Option ausschliesst/ergrauen lässt. Kennt jemand einen Code, mit dem das funktionieren könnte?
Ich benutze die Version 5.1.17.
Vielen Dank!
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 5 months ago #221460 by Joffm
Nein,
entweder die Option ist exklusiv oder nicht.
Das musst Du dann über Validierung regeln.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • Phinea
  • Phinea's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 5 months ago #221462 by Phinea
Hallo Joffm
Danke für deine Antwort. Ich dachte immer, dass Validierung für Zahleneingaben ist.
Kannst du mir erklären, wie ich die Validierungsfunktion für mein Problem brauchen kann? Ich stehe leider noch auf dem Schlauch :(
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 5 months ago #221463 by Joffm
Hallo,
Mit der Validierung überprüfst Du generell, dass nur von Dir erlaubte Dinge eingegeben werden.

Was ist denn hier erlaubt?
Wenn die Teilfrage 4 nicht ausgewählt wurde, ist der Rest egal.
Wenn sie aber ausgewählt wurde, darf die Anzahl der ausgewählten Items (exklusive "Sonstiges") nur 1 sein.

Wir haben ja die Codes
Q1_SQ001
Q1_SQ002
Q1_SQ003
Q1_SQ004
Q1_other

Wenn man dies nicht weiß, ist es das Beste, man aktiviert die Umfrage und schaut sich die Antworttabelle an (In meinem Beispiel heißt die Frage nun einmal Q16.)
 

Um die Anzahl der gewählten Items zu bestimmen, dient die Funktion "count".
Und mit dem Wissen über "self", und "that" kann man nun einfach als Validierungsgleichung schreiben
self.sq_SQ004!="Y" OR (self.sq_SQ004=="Y" AND count(self.sq_SQ)==1)

Zur Erklärung:
Das "self.sq_"-Konstrukt expandiert und berücksichtigt alle Teilfragen, die die Buchstabenkombination nach "sq_" enthalten.
Also "self.sq_SQ004" ist gleichbedeutend mit "Q1_SQ004", erleichtert aber ein eventuelles Umbenennen der Frage ("self" referenziert immer den Fragencode)
Dagegen wird "count(self.sq_SQ)" erweitert zu "count(Q1_SQ001, Q1_SQ002, Q1_SQ003, Q1_SQ004)".
Und hier kommt uns LimeSurvey entgegen. Da die "Sonstigen"-Option "Q1_other" heißt, also kein "SQ" enthält, wird sie nicht mitgerechnet.

Und dann noch einen knackigen Hinweis wie hier einfach
{if(self.sq_SQ004=="Y" AND count(self.sq_SQ)>1,"Teilfrage 4 ist exklusiv","")}
bekommt man dann dies:

   

 



Viel Erfolg
Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
  • Phinea
  • Phinea's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 5 months ago #221468 by Phinea
Hallo Joffm

Vielen Dank für deine ausführliche Antwort und Erklärung!
Genau, nur wenn Teilfrage 4 ausgewählt wurde, werden die ersten 3 Teilfragen ausgeschlossen, ansonsten darf jegliche Kombination ausgewählt werden.
Ich habe deinen Code in Grün kopiert und eingegeben, jedoch passiert bei der Umfrage nichts. Es zeigt keine Fehlermeldung und ergraut auch nicht, wenn ich zb Teilfrage 2 und 4  gleichzeitig auswähle. Weisst du was der Grund dafür sein könnte? Hat es vielleicht etwas mit der Version 5.1.17 zu tun?  
Vielen Dank für deine Hilfe!
The topic has been locked.
  • Phinea
  • Phinea's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 years 5 months ago #221473 by Phinea
Jetzt hat es doch geklappt. Nur habe ich jetzt ein neues Problem; wenn ich zB Teilfrage 2 oder 3 auswähle, kommt die Meldung, dass ich die "Sonstiges" Teilfrage auch beantworten muss. Das wollte ich nicht; ich wollte, dass nur wenn man die Teilfrage 4 ankreuzt, die ersten 3 verschwinden. Die "Sonstiges Option" sollte freiwillig sein, egal welche Antworten man ankreuzt. 
Weiss jemand wie ich das wegbekomme? 
The topic has been locked.
  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 years 5 months ago #221476 by Joffm
Hallo,
zunächst noch einmal hierzu

Ich habe deinen Code in Grün kopiert

Das zeigt wieder: "Wie man es macht, ist es falsch"
Ich hatte die zwei Farben gewählt, um zurückzuverweisen auf die zwei Möglichkeiten die es gibt

  • Wenn die Teilfrage 4 nicht ausgewählt wurde, ist der Rest egal.
  • Wenn sie aber ausgewählt wurde, darf die Anzahl der ausgewählten Items (exklusive "Sonstiges") nur 1 sein.

und für jede der beiden Fälle eine Farbe genommen.
Der blaue Teil deckt die Möglichkeit ab, dass das 4. Item nicht ausgewählt wurde, der grüne, dass es ausgewählt wurde.

Daher muss natürlich der gesamte Term eingetragen werden.
self.sq_SQ004!="Y" OR (self.sq_SQ004=="Y" AND count(self.sq_SQ)==1)

Und jetzt zum letzten post:
Wenn Du uns nicht zeigst, was genau Du als Validdierungsgleichung eingetragen hast, kann Dir auch niemand helfen.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless
The topic has been locked.
Moderators: Joffm

Lime-years ahead

Online-surveys for every purse and purpose