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

0 votes

Ich habe einen Filter geschrieben, bei dem mehrere Variablen geprüft werden.
Bei fünf Variablen soll der Teilnehmende bei der Antwort "trifft nicht zu" direkt zu einer anderen Frage weitergeleitet werden.

Den PHP-Code habe ich auf die nächste Seite der Filterfragen gesetzt. Also Filterfragen stehen auf Seite 3 und auf Seite 4 steht der PHP-Code.

Als Fehlermeldung wird mir aber anzeigt, dass die Variable auf keiner vorhergehenden Seite abgefragt wird. Stimmt ja aber nicht.

Was ist mein Fehler?

Vielen Dank

in SoSci Survey (dt.) by s078581 (110 points)
retagged by SoSci Survey

1 Answer

0 votes

Haben Sie den Fragebogen zum Testen von Beginn oder zumindest ab der Filterfrage gestartet? Im Eifer des Programmierens versucht man mitunter, das Interview direkt auf der Seite mit dem PHP-Code/Filter zu starten, und das kann nicht funktionieren.

Wenn es daran nicht liegt, posten Sie bitte die Debug-Information der Seite mit der Filterfrage und der Seite mit dem Filter, vgl. Fragebogen-Probleme lösen

by SoSci Survey (81.6k points)
Hallo, bei mir ist das genauso.

In meinem Experiment sollen die VPn eine aus vier Boxen mit verschiedenen Wahrscheinlichkeiten wählen. Der Gewinn soll über die Zuordnung der Antwort (A, B, C, D) zu einem Wert, der auf eine interne Variable läuft, am Ende ermittelt werden.

Dazu habe ich folgendes gemacht:

Es werden auf 4 aufeinanderfolgenden Seiten jeweils 4 Boxen mit den Antworten A, B, C, D gezeigt. Die Werte der Variable müssten hierzu 1, 2, 3, 4 sein.

Die jeweilige Antwort soll als Zahlenwert (jeweiliger Gewinn) in einer internen Variable gespeichert werden (eine IV für jede der vier Aufgaben).

Das sieht dann für die erste Auswahlaufgabe so aus:

if (value(CH01) == 1) {
  put('IV01_01', 10);
}
else if (value(CH01) == 2) {
  put('IV01_01', 10);
}
else if (value(CH01) == 3) {
  put('IV01_01', 15);
}
else if (value(CH01) == 4) {
  put('IV01_01', 12);
}

Es sind jeweils Zahlenwerte, die in der IV01_01 gespeichert werden sollen.

So ein Code wurde für alle vier aufeinander folgenden Entscheidungsaufgaben erstellt, so dass es Werte für die Variablen IV01_01, IV01_01, IV01_03 und IV01_04 gibt.

Diese Werte sollen am Ende zusammenaddiert werden. Dafür habe ich folgenden Code geschrieben:

$sum = valueSum(
         array(
           'IV01_01',
           'IV01_02',
           'IV01_03',
           'IV01_03'
         )
       );

Dann noch einen html:

Congratulations! You have won %winning% cents!

Dann noch einen php:
replace('%winning%', '$sum');

Aber bei mir gibt es zu Beginn beim Testen auch immer das Problem, dass die Fehlermeldung erscheint "The term CH01 has been used in the PHP code. However, it is neither used as a variable nor as a function.". Aber die Variable, bei welcher die Auswahl der betreffenden Entscheidungsoption erfragt wird, heißt auf jeden Fall CH01 und in den anderen Fällen CH02,CH03, CH04. Und immer wird gesagt, diese existiere nicht..

Wie kann ich dieses Problem lösen?

Vielen Dank und liebe Grüße!
Kurze Antwort: in Ihrem PHP-Code fehlen die Anführungzeichen:

Falsch:   if (value(CH01) == 4)
Richtig:   if (value('CH01') == 4)

Generell möchte ich Sie bitten, so ausführliche Fragen nicht als Kommentar zu posten - das wird schnell unübersichtlich. Es gibt eine Funktion "related question". Diese erlaubt eine neue Frage im Online-Support mit bezug zu einer früheren Frage. Danke!
...