0 votes
in SoSci Survey (dt.) by s101649 (120 points)

Guten Tag,
Ich muss einen Fragebogen mit sehr vielen Filtern bauen. Personen, die Bedingung A erfüllen werden weiter befragt. Personen die Bedingung A nicht erfüllen werden an Frage WB24 weitergeleitet. Je nach dem wie WB24 beantwortet wird kommt noch eine Frage und dann endet das Interview für diese Gruppe (da ist noch ein Filter aber der ist kein Problem). Nun kommt Folgende Anzeige Für die Gruppe die Bedingung A erfüllen,
WB 24 wird zunächst korrekt übersprungen und die Fragen die an WB 24 geknüpft sind (eigentlich übersprungen) tauchen auf.

Fehlermeldung:

Die Variable WB24 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.

Wie kann ich das lösen? Das WB24 eine Filterfrage bleibt und trotzdem übersprungen werden kann für die Gruppe die bereits ein Studium abgeschlossen hat.

Dazwischen sind noch 2 Filter die auf vorangegangen Fragen aufbauen, aber das ist kein Problem.
WB08 ist ebenfalls eine Filter Frage

Anbei all einem PHP:

if (value ('WB04')==1){
question ('WB08'); // Bachelor
}else{
question('WB24'); // planen Sie ein Studium
}

if (value('WB24') == 1) {
question('WB06'); // Gründe ja
question('WB07'); // Freitext
} else {
question('WB05'); // Gründe Nein
}

if ((value('WB08') == 3)or (value ('WB08')==4)){
question('WB10'); // Bachelor
question('WB11'); // Abschlussjahr
} else {
question('WB12'); // Master
}

Debug:
[Verarbeitung] Lese Antworten von Seite 29
[Information] Antwort auf WB08 = 3
[Information] ▼ Filter WB08/1 wird aktiv (Bedingung erfüllt).
[Information] Bedingung in Filter WB08/2 ist nicht erfüllt.
[Information] Fragen bisher zu 100% vollständig beantwortet
[Verarbeitung] Erstelle Seite 30 in Fragebogen base
[Information] value("WB24") = ???
[Inhalt] Erstelle Frage WB05

1 Answer

0 votes
by s109993 (10.3k points)

Sie müssen dann die Bedingungen ändern. Die Variable WB24 ein leeres Datenfeld, wenn die Frage nicht vorgelegt wird. Damit müssen Sie arbeiten.

Zum Beispiel:

if (value('WB24') == 1) {
question('WB06'); // Gründe ja
question('WB07'); // Freitext
} else if (value('WB24') == 2) { 
question('WB05');  // Gründe Nein
} else {

-> was passiert wenn weder ja noch nein angekreuzt wurde, die Frage also übersprungen wurde (das geht nur, wenn es eine Pflichfrage ist)

}

Wenn es keine Pflichtfrage ist, müssen sie ggf. mit else und mit zwei else if arbeiten:

if (value('WB24') == 1) {
question('WB06'); // Gründe ja
question('WB07'); // Freitext
} elseif (value('WB24') == 2) { 
question('WB05');  // Gründe Nein
} elseif (value('WB24') == "") { 
was passiert wenn die Frage nicht vorgelegt wird?
} else {

die einzige verbleibende Bedingung ist -9: Frage wurde vorgelegt aber leer gelassen

}

Wie gesagt, dass sind nur Beispiele wie sie in diesen Fällen denken müssen- vielleicht hilft das schon weiter. Hier noch zum nachlesen der Rückgabewerte: https://www.soscisurvey.de/help/doku.php/de:results:values

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

...