0 votes
in SoSci Survey (dt.) by s109993 (13.1k points)

Ich habe eine Mehrfachauswahl-Skala mit maximal 8 Items. Die Anzahl kann aber variieren zwischen 1 und 8. Nun möchte ich einen Filter setzen, dass wenn bei allen angezeigten Items die Ausweichoption ausgewählt wird (-1), der Fragebogen an das Ende springt. Da müsste ich ja A002_01_CN bis A002_08_CN ansprechen, oder? Mit getItems() habe ich es nicht hinbekommen

1 Answer

0 votes
by SoSci Survey (371k points)
selected by s109993
 
Best answer

Nur zur Sicherheit: Sie haben absichtlich eine Mehrfachauswahl gewählt - Sie möchten also auch zulassen, dass man mehrere Option in einer Zeile auswählen kann?

Mit getItems() habe ich es nicht hinbekommen

Folgende Zeile sollte eigentlich alle Items liefern, bei denen die Ausweichoption ausgewählt wurde:

getItems('MF01', 'is', -1);

Wobei Sie MF01 natürlich gegen die Kennung Ihrer Frage tauschen würden. Für Sie aber wahrschienlich praktischer:

getItems('MF01', '>', -1);

Wenn dieses Array leer ist, dann wurde überall die Ausweichoption gewählt. Wenn Sie >0 als Kriterium verwenden, bilden Sie auch den Fall ab, dass in einer Zeile (sofern der Fragebogen das erlaubt) gar nichts angekreuzt wurde.

by s109993 (13.1k points)
getItems('MF01', 'is', -1);

Das hat bei mir schon den Code bei einem "-1" ausgelöst. Es müssen aber alle angezeigten Items den Wert -1 haben. Ich habe es jetzt über den langen Weg gemacht :)

$item1 = value('A002_01_CN');
$item2 = value('A002_02_CN');
$item3 = value('A002_03_CN');
$item4 = value('A002_04_CN');
$item5 = value('A002_05_CN');
$item6 = value('A002_06_CN');
$item7 = value('A002_07_CN');
$item8 = value('A002_08_CN');

if (
    ($item1 == -1 || $item1 == "") &&
    ($item2 == -1 || $item2 == "") &&
    ($item3 == -1 || $item3 == "") &&
    ($item4 == -1 || $item4 == "") &&
    ($item5 == -1 || $item5 == "") &&
    ($item6 == -1 || $item6 == "") &&
    ($item7 == -1 || $item7 == "") &&
    ($item8 == -1 || $item8 == "")
) {
    goToPage('end');
}

Noch der Hinweis, dass getItems('MF01', '!=', -1); eine Fehlermeldung aufwirft. Alles andere hat funktioniert, aber die Kombination von != und getItems hat irgendwie Probleme gemacht (in SoSci Wiki wird ja von != und <> als Operator gesprochen).
by SoSci Survey (371k points)
> Das hat bei mir schon den Code bei einem "-1" ausgelöst.

Sie müssten dann noch abzählen, ob es auch 8 Elemente sind, also

$other = getItems('MF01', 'is', -1);
if (count($other) == 8) {
 ...
}

> Noch der Hinweis, dass getItems('MF01', '!=', -1); eine Fehlermeldung aufwirft.

Danke, das prüfe ich gleich. Aber in Ihrem Fall wäre es ohnehin das '>', 0 das aus meiner Sicht am besten geeignet wären. Damit sollten Sie auch den leeren String erfassen.

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...