Welcome to the LimeSurvey Community Forum

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

Teilfragen-Validierung

  • Gelimed
  • Gelimed's Avatar Topic Author
  • Offline
  • Senior Member
  • Senior Member
More
2 days 17 hours ago #270998 by Gelimed
Teilfragen-Validierung was created by Gelimed
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: 6.14.3
Eigener Server oder LimeSurvey-Cloud: Cloud
Genutzte Designvorlage: eigene
==================
Hallo liebe Helfer,

ich bräuchte mal wieder Hilfe bei der Teilfragen-Validierung, Export hänge ich an.
Problem:
Die Eingabe in Frage "Öffnungszeiten" - 2. Frage der 2. Gruppe, wird nur in Abhängigkeit der Antworten auf die 1. Frage eingeblendet und die Teilfragen werden gefiltert eingeblendet - sollte so erfolgen, dass pro Zeile mindestens für den Vormittag ODER für den Nachmittag Werte eingetragen werden müssen. Das ist mir nicht mal für die erste Zeile gelungen, siehe fehlerhafte Gleichung im Bereich "Teilfragen-Validierungsgleichung":

if((Q03_SQ01.NAOK=='AO03'),
((!is_empty(Q04_Y01_X01.NAOK) AND !is_empty(Q04_Y01_X02.NAOK)) OR (!is_empty(Q04_Y01_X03.NAOK) AND !is_empty(Q04_Y01_X04.NAOK))),
(if((Q03_SQ01.NAOK=='AO04'),
((!is_empty(Q04_Y01_X01.NAOK) AND !is_empty(Q04_Y01_X02.NAOK)) OR (!is_empty(Q04_Y01_X03.NAOK) AND !is_empty(Q04_Y01_X04.NAOK))),"")))

Ich freue mich, wenn jemand helfen kann.

Viele Grüße,
Niklas

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 days 15 hours ago #271006 by Joffm
Replied by Joffm on topic Teilfragen-Validierung
Ich lese es gerade am Badesee und denke "Kann man sich nicht mal von diesen default  Antwortoptionen "AO01", "AO02", ... "trennen.

Gut, der Fehler liegt am IF.
Damit bekommst Du keinen lohischen Term, der wahr oder falsch ist.
Muss sein:
Q3=="AO03" and der Kram von Q4
and
Q3=="AO04" and der Kram von Q4.

Das war "aus der Lameng".
Zuhause schaue ich genau.

Bis dann
Joffm 

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

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 days 1 hour ago #271010 by Joffm
Replied by Joffm on topic Teilfragen-Validierung
So, ich habe einmal etwas herumgedacht.
Ich würde anders vorgehen, nämlich:
1. Berechne aus Q03 die Anzahl der Zeilen in Q04, (numerisch codiert)
In einer Gleichung zwischen den Fragen; dann muss man nur einmal rechnen.
{sum(if(countif("3",that.Q03.NAOK)>0,1,0),countif("4",that.Q03.NAOK))}

2. Codiere Vormittag und Nachmittag unterschiedlich, z.B. V1, V2 und N1, N2.
Damit kann man "self", insbesondere zusammen mit ".sq" gut nutzen.

3. Validierung: 
Stelle sicher, dass es NUR Pärchen gibt und die Summe der Pärchen "V1,V2", "N1,N2" gleich der berechneten Zellenzahl ist.
Dabei wird ignoriert, ob es ein oder zwei Pärchen pro Zeile gibt.

Dann müsstest Du noch zusätzlich testen, dass Schließung nicht vor Öffnung, dass überhaupt sinnvolle Zeiten eingetragen werden.

Joffm

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

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 day 16 hours ago - 1 day 16 hours ago #271022 by Joffm
Replied by Joffm on topic Teilfragen-Validierung
Hallo,
ich könnte mir auch so etwas vorstellen.
Zugegeben, ich halte deinen Ansatz für ein wenig kompliziert für den Teilnehmer.
Gerade, was die Unterscheidung von "einheitliche" - wo ich aber doch alle anklicken muss - und "nicht-einheitliche".
Du siehst ja selbst, dass die Erklärung gut verstanden werden muss.




Du siehst: Wenn geschlossen oder Terminvereinbarung werden die Zeitfelder auf "disabled" gesetzt

Codierung der X-Achse
 
Benummerung des Dropdowns.
Code:
    $('.answer-item.answer_cell_X1', thisQuestion).addClass('with-select').append('<select class="inserted-select form-control list-question-select">\
            <option value="">... bitte auswählen &amp;#9660;</option>\
            <option value="3">geschlossen</option>\
            <option value="2">geöffnet - nur mit Terminvereinbarung -</option>\
            <option value="1">geöffnet</option>\
    </select>');  


Dann wäre eine mögliche Validierung: (Zeilenumbrüche zur Verdeutlichung)
Code:
((self.sq_Y01_X1>1) OR (self.sq_Y01_X1==1 and (count(self.sq_Y01_V)==2 OR count(self.sq_Y01_N)==2) and count(self.sq_Y01_V,self.sq_Y01_N)!=3)) AND
((self.sq_Y02_X1>1) OR (self.sq_Y02_X1==1 and (count(self.sq_Y02_V)==2 OR count(self.sq_Y02_N)==2) and count(self.sq_Y02_V,self.sq_Y02_N)!=3)) AND
((self.sq_Y03_X1>1) OR (self.sq_Y03_X1==1 and (count(self.sq_Y03_V)==2 OR count(self.sq_Y03_N)==2) and count(self.sq_Y03_V,self.sq_Y03_N)!=3)) AND
 
... hier geht es dann weiter bis Y06


Wie Du im Bild siehst habe ich 
  • eine Inputmaske eingebaut (mit der Bibliothek von Igor Escobar)
  • die Spaltenbreiten  geändert.

Was bleibt?
  • Validierung auf vernünftige Eingaben
  • Evtl. getrennte Fehlermeldungen:
    a. Bitte geben Sie in jeder Zeile den Status an!
    b. Eben der Hinweis, dass immer Von-Zeit und Bis-Zeit angegeben werden müssen

Und, was eben nicht zu vermeiden ist: Man hat den anfänglichen Fehler; nämlich, wenn alles leer ist.

Bis dann
Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 1 day 16 hours ago by Joffm.

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose