Welcome to the LimeSurvey Community Forum

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

Mehrfachauswahl mit Kommentaren und Exklusiv Option

  • HETILV
  • HETILV's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
6 months 1 week ago #265071 by HETILV
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: 6.5.9
Eigener Server oder LimeSurvey-Cloud: Eigener
Genutzte Designvorlage: vanilla
==================
Hallo,

ich habe eine Mehrfachauswahl mit Kommentaren angelegt. Bei der 3. und 4. Teilfrage habe ich die Kommentarboxen ausgeblendet.
In die Kommentarboxen soll man nur ganze Zahlen eingeben können. Ist alles so auch schon drin.
Nun möchte ich aber, dass man entweder eine oder beide "Ja"-Antworten geben kann oder nur "Nein" oder nur "Weiß nicht". Dafür habe ich die Exklusive Option für Teilfrage 3 und 4 eingegeben. Seit der Eingabe der Exklusiv Option funktioniert es leider nicht mehr.
Wenn ich nun "Nein" oder "Weiß nicht" anklicke, kann ich nicht weiter gehen, weil er mir sagt, dass eine oder mehrere Fragen nicht beantwortet sind.
Wo liegt mein Fehler? Kommt er mit den ausgeblendeten Kommentarboxen nicht klar?

Gruß
HETILV
 

File Attachment:

File Name: limesurvey...9631.lss
File Size:25 KB

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 months 1 week ago - 6 months 1 week ago #265085 by Joffm
Ja, die exklusive Option hat ihre Tücken.
Irgendwie scheinen die anderen Werte dann undefiniert zu sein.

Daher habe ich einen ganz anderen Ansatz gewählt.
Zunächst einmal ist es eine Pflichtfrage; ist ja eigentlich klar.
Dann müssen nur die Antworten gezählt werden und nur gültige Ergebnisse durchgelassen werden
Denn was muss gelten?
In jeder der beiden ersten Zeilen gibt es keine Antwort oder zwei - insgesamt also 0, 2 oder 4
Damit kann man schon einmal abhaken
count(self.sq_N.NAOK)==0 or count(self.sq_N.NAOK)==2 or count(self.sq_N.NAOK)==4
Damit ich die "self"-Variable nutzen konnte, habe ich die beiden ersten Teilfragen mit "N1" und "N2" kodiert.
Und es wird zusätzlich auf "0 Antworten" getestet, damit nicht ein initialer Fehler angezeigt wird.

Gut, das haben wir.
Was ist, wenn der Teilnehmer eine der anderen Antworten wählt. Naja, dann hier ist die Anzahl  der Antworten "1".
Dies beiden Teilfragen habe ich mit "S1" und S2" kodiert.
(count(self.sq_S.NAOK)==1

Alles zusammen gibt dann
(count(self.sq_S.NAOK)==1 or count(self.sq_N.NAOK)==0 or count(self.sq_N.NAOK)==2 or count(self.sq_N.NAOK)==4)

So, jetzt kommt noch der Teil, dass nur ganze Zahlen in die Kommentarfelder eingetragen werden.
Dazu habe ich eine "regular Expression" genommen, nämlich "\d*" (erlaubt sind keine oder mehrere Ziffern)

Und jetzt haben wir alles.
(count(self.sq_S.NAOK)==1 or count(self.sq_N.NAOK)==0 or count(self.sq_N.NAOK)==2 or count(self.sq_N.NAOK)==4) and (regexMatch("/^\d*$/",D5_N1comment) and regexMatch("/^\d*$/",D5_N2comment))

Den Hinweis kannst Du nun noch beliebig gestalten, je nachdem, was der Teilnehmer falsch macht.
Mit einem verschachtelten IF.
Zum Beispiel, wenn die Anzahl oben ungerade ist "Bitte, füllen Sie beide Teile aus"
Wenn "regexMatch" nicht erfüllt ist "Bitte nur ganze Zahlen"
Hier in den screenshots ist es immer eine konstante Meldung.
   
 
 


Joffm

P.S.
Das Umkodieren und die Benuzung von "self" kannst Du natürlich weglassen; dann müssen eben alle Parameter in die Funktion eingefügt werden
count(D5_1.NAOK,D5_1comment,D5_2.NAOK.D5_2comment)
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 6 months 1 week ago by Joffm.

Please Log in to join the conversation.

  • HETILV
  • HETILV's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
6 months 1 week ago #265100 by HETILV
Hallo Joffm,
vielen Dank. Aber mit der den Validierungshinweisen komme ich noch nicht klar. Das ist mein Versuch. Da muss wohl noch gehörig was falsch sein.
{if(((count(self.sq_N.NAOK)==1) or (count(self.sq_N.NAOK)==3)), '', 'Bitte geben Sie einen Betrag ein.')}{if((!regexMatch("/^\d*$/",D5_N1comment) or !regexMatch("/^\d*$/",D5_N2comment)) '', 'Bitte geben Sie nur ganze Zahlen ein.')}{if((count(self.sq_S.NAOK)==2), '', 'Bitte kreuzen Sie nur "Nein" oder "Weiß nicht" an.')}

Zudem habe ich mich gefragt, ob in der Validierung nach ein Fehler ist oder ob das an meinem fehlerhaften Validierungshinweis liegt. Wäre es nicht möglich ein "Ja" anzukreuzen ohne etwas ins Kommentarfeld zu schreiben und zusätzlich "Nein" anzuklicken und man würde damit durchkommen?

Und muss die Frage unbedingt eine Pflichtfrage sein? War eigentlich nicht gewünscht. Oder ruiniert das alles?

Gruß
HETILV

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 months 1 week ago #265102 by Joffm
Hallo,
der Hinweis sollte wohl besser ein verschachteltes IF sein.
Außerdem sind die IFs nicht richtig.
Bedenke an die Syntax. if(Bedingung,WAHR-Aussage,FALSCH-Aussage)

Und was steht bei Dir?
if(((count(self.sq_N.NAOK)==1) or (count(self.sq_N.NAOK)=)), '', 'Bitte geben Sie einen Betrag ein.')
Wenn die Anzahl ungerade ist, wird der WAHR-Teil gezeigt - also nichts; aber wenn die Anzahl nicht ungerade ist, also die Bedingung falsch ist, damit aber die Frage richtig beantwortet, wird die Meldung gezeigt.
Da musst Du noch einmal ran.
 

Wäre es nicht möglich ein "Ja" anzukreuzen ohne etwas ins Kommentarfeld zu schreiben und zusätzlich "Nein" anzuklicken und man würde damit durchkommen?

Kann doch nicht gehen; "Nein" ist doch exklusiv.
Wenn diese beiden Optionen nicht exklusiv wären, würde es natürlich so funktionieren. Aber das war ja nicht die Aufgabenstellung.

{if((count(self.sq_S.NAOK)==2), '', 'Bitte kreuzen Sie nur "Nein" oder "Weiß nicht" an.')}

Analog; Du kannst ja nicht beide zusammen anklicken.

Und muss die Frage unbedingt eine Pflichtfrage sein? War eigentlich nicht gewünscht. Oder ruiniert das alles?

Nein, muss es nicht. Dieser Satz stammte noch aus der Idee, die ich vorher hatte, aber wieder verworfen habe.

Aber: Warum machst Du eigentlich eine Umfrage, wenn die Leute Dir nichts zu sagen brauchen? 
Solche geschlossenen Fragen können doch immer beantwortet werden. Und Du hast ja alle Möglichkeiten abgedeckt. Meinetwegen kannst Du ja "WN/KA" benutzen.
Du kannst später sowieso nicht trennen, was ein Teilnehmer meint wenn er
  • leer lässt
  • "weiß nicht" ankreuzt
Lässt er leer, weil er es noch nicht weiß? Oder weil er keine Investitionen plant?
Kreuzt er "WN" an, weil er nicht weiß, ob überhaupt; oder weiß er nicht, wieviel er investieren will?

Hoffe nie, dass die Teilnehmer alles lesen. Und auch nicht, dass sie die Frage so interpretieren wie Deine Intention ist.
Daher muss man in Online-Umfragen ja ziemlich streng führen.

Vielleicht wäre es sogar besser, die Frage zu splitten.
Planen Sie?
Ja/Nein/Weiß noch nicht
Und wenn "Ja" ploppt die Frage nach dem Betrag auf.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

  • HETILV
  • HETILV's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
6 months 1 week ago #265103 by HETILV
Hallo Joffm,

Vielleicht wäre es sogar besser, die Frage zu splitten.
Planen Sie?
Ja/Nein/Weiß noch nicht
Und wenn "Ja" ploppt die Frage nach dem Betrag auf.

Ja, auf die Idee bin ich auch gerade gekommen. Manchmal braucht man eben länger für die einfachsten Lösungen.

Ich werde deine Version aber auf jeden Fall noch mal weiter verfolgen. Ich hatte allerdings die Exklusiv-Option raus genommen, weil ich dachte, dass das alles mit einander kollidiert.

Vielen lieben Dank nochmal.

Gruß
HETILV

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 months 1 week ago #265105 by Joffm
Naja, es gab natürlich doch noch etwas, wo ich zu kurz gedacht habe.
Nämlich hier
(count(self.sq_S.NAOK)==1 or count(self.sq_N.NAOK)==0 or count(self.sq_N.NAOK)==2 or count(self.sq_N.NAOK)==4) and (regexMatch("/^\d*$/",D5_N1comment) and regexMatch("/^\d*$/",D5_N2comment))
D.h. man würde eine Anzahl von 2 auch erhalten, indem beide Checkboxen angeklickt werden, aber keine Zahl eingetragen wird.
Muss man eben teilen in
(count(self.sq_S.NAOK)==1 or ((count(self.sq_N1.NAOK)==0 or count(self.sq_N1.NAOK)==2) and (count(self.sq_N2.NAOK)==0 or count(self.sq_N2.NAOK)==2))) and (regexMatch("/^\d*$/",D5_N1comment) and regexMatch("/^\d*$/",D5_N2comment))

Und als Hinweis vielleicht
{if(count(self.sq_N1)==1 or count(self.sq_N2)==1,'Bitte, füllen Sie beide Teile aus!',if(!regexMatch("/^\d*$/",D5_N1comment) or !regexMatch("/^\d*$/",D5_N2comment),'Bitte, geben Sie nur ganze Zahlen ein!',''))}

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

  • HETILV
  • HETILV's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
6 months 6 days ago #265146 by HETILV
Hallo Joffm,

D.h. man würde eine Anzahl von 2 auch erhalten, indem beide Checkboxen angeklickt werden, aber keine Zahl eingetragen wird.
Muss man eben teilen in
(count(self.sq_S.NAOK)==1 or ((count(self.sq_N1.NAOK)==0 or count(self.sq_N1.NAOK)==2) and (count(self.sq_N2.NAOK)==0 or count(self.sq_N2.NAOK)==2))) and (regexMatch("/^\d*$/",D5_N1comment) and regexMatch("/^\d*$/",D5_N2comment))

Das leuchtet ein. Jetzt hätte ich nur noch das Problem, falls jemand bereits bei "Ja" etwas in die Kommentarbox eingetragen hat und sich dann doch noch für z.B. "Nein" entscheidet, dann löscht er zwar das Kreuz bei "Ja" aber wohl nicht den Inhalt aus der Kommentarbox. Jetzt kommt die Meldung "Kommentieren wenn eine Antwort gewählt wird". Bekommt man das auch noch weg?

Gruß
HETILV

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Away
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
6 months 6 days ago #265155 by Joffm
Überprüfe die Einstellungen in
Nur kommentieren wenn
und
Text entfernen oder deaktivieren Sie das Kontrollkästchen automatisch

Setze sie richtig und ein Eintrag im Kommentarfeld wird beim Zurücknehmen des Klicks ebenfalls gelöscht.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

  • HETILV
  • HETILV's Avatar Topic Author
  • Offline
  • Junior Member
  • Junior Member
More
6 months 6 days ago #265156 by HETILV
Hallo Joffm,

das obere wars. Vielen lieben Dank.

Gruß
HETILV

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose