0 votes
in SoSci Survey (dt.) by s174487 (110 points)

Hallo liebes SoSci Survey Team.

In meiner Umfrage kann es an mehreren Stellen passieren, dass die Umfrage nach Beantwortung einer Frage des Typs "Skala (Zwischenwerte beschriftet)" endet oder nach Beantwortung der Frage dieses Typs innerhalb der Umfrage gesprungen werden soll.

Ich weiß nun nicht, wie ein PHP Code im Falle des Endes goToPage('end') oder im Falle des Überspringens goToPage('xy') gesetzt wird, wenn als Bedingung gilt, dass für jedes Item ein Skalenwert ausgewählt werden muss, aber sonst keine "bestimmte" Bedingung erfüllt werden muss. Einzige Bedingung ist, für jedes Item einen Skalenwert auszuwählen.

VG

by SoSci Survey (307k points)
> Einzige Bedingung ist, für jedes Item einen Skalenwert auszuwählen.

Verstehe ich Sie richtig, dass es darum geht, ob einzelne Items in der Skala nicht beantwortet wurden? Ansonsten müssten Sie die Frage bitte nochmal anders formulieren.
by s174487 (110 points)
Genau richtig. Die Bedingung ist, dass für jedes Item ein Skalenwert ausgewählt wird, allerdings wird nicht gefiltert, welcher Skalenwert.

Hat man bspw. 3 Items und 5 Skalenwerte ist die Bedingung, dass jedem Item ein Skalenwert zugeordnet wurde. Können Sie mir sagen, wie man eine solche Bedingung in einem PHP Code formuliert. Gerne kann ich Ihnen auch eine Beispielfrage aus meinem Projekt nennen, ich weiß allerdings nicht inwieweit Sie darauf Zugriff haben.

Vielen Dank!

1 Answer

0 votes
by SoSci Survey (307k points)

die Bedingung, dass jedem Item ein Skalenwert zugeordnet wurde

Methodisch finde ich diese Bedingung schwierig, weil Befragte immer mal wieder Items übersehen. Nicht zuletzt deshalb gibt es in SoSci Survey ja Funktionen zur Kontrolle der Vollständigkeit (Nachhaken, Antwortzwang).

Aber ich gehe davon aus, dass hinter Ihrer Frage ein gut durchdachtes Design steckt. Und insofern kann ich mit einer recht einfachen technischen Antwort aufwarten:

if (count(getItems('AB01', 'missing')) > 0) {
  goToPage('somewhere');
}

Die Funktion getItems() mit dem Parameter missing oder invalid sucht alle Items einer Frage heraus, die nicht beantwortet wurden oder ein "weiß nicht" bekommen haben. Die Funktion count() zählt ab, wie viele das sind.

Wenn es mindestens eins ist (> 0), dann wird der IF-Filter aktiv. Im obigen Beispiel müssten Sie natürlich das "AB01" noch durch die Kennung der Skalenfrage ersetzen, um die es geht. Und der Filter muss auf der Seite nach der Skalenfrage stehen (oder noch später im Fragebogen).

by s174487 (110 points)
Vielen Dank für die schnelle Antwort. Ich habe es mit dem entsprechenden Code und meinen Kennungen versucht, es hat leider nicht geklappt.

Der Grundgedanke ist glaube ich in meinen Augen ganz einfach, ich denke ich formuliere es falsch. In dem besprochenen Fall soll die Umfrage beendet bzw. Seiten übersprungen werden, wenn die Bedingung erfüllt ist, dass jedem Item ein Skalenwert zugeordnet wurde. Ist dies nicht der Fall, erscheint ein Hinweis (Antwortzwang). Hat der Teilnehmer nun also allen Items einen Skalenwert zugeordnet, endet für ihn die Umfrage oder er springt (goToPage ...). Dabei ist es nicht wichtig, welche Skalen ausgesucht wurden, sondern nur, dass jedes Item mit einer Skalenwert bewertet wurde.

Wie ließe sich das codieren? weil ich habe das Gefühl, dass Ihr Code nur gilt, wenn NICHT jedem Item ein Skalenwert zugeordnet wurde, oder verstehe ich das falsch?

Vielen vielen Dank für Ihre Hilfe
by SoSci Survey (307k points)
> In dem besprochenen Fall soll die Umfrage beendet bzw. Seiten übersprungen werden, wenn die Bedingung erfüllt ist, dass jedem Item ein Skalenwert zugeordnet wurde. Ist dies nicht der Fall, erscheint ein Hinweis (Antwortzwang)

Gut, der Hinweis erscheint ja schon, wenn Sie einen Antwortzwang eingerichtet haben. Und die Frage wird dann auch solange wiederholt, bis alles beantwortet wurde.

Ich würde jetzt also denken, dass nach dieser Seite *immer* Schluss ist?!

> weil ich habe das Gefühl, dass Ihr Code nur gilt, wenn NICHT jedem Item ein Skalenwert zugeordnet wurde

Genau. Sie können natürlich das >0 auch durch ein ==0 ersetzen, um zu filtern, dass kein Item mehr fehlt.
by s174487 (110 points)
Es funktioniert!

Vielen vielen Dank für Ihre Hilfe

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

...