0 votes
in SoSci Survey (dt.) by s130121 (140 points)
edited by s130121

Liebe sosci Survey- Community,

für meine Befragung möchte ich die "forced choice" Funktion randomisieren. Konkret möchte ich erreichen, dass die Hälfte meiner Experimentalgruppen (6 Gruppen) eine Frage beantworten muss, während die anderen 6 Gruppen die Frage auch ohne Antwort überspringen können.

Meine bisherige Überlegung war folgender PHP-Code, der aber leider nicht funktioniert:

if (value('RZ') == 1) or (value('RZ') == 3) or (value('RZ') == 5) or (value('RZ') == 7) or (value('RZ') == 9) or (value('RZ') == 11) {
$miss = getItems('U102', 'is', -9);
}
if (value('RZ') == 1)  or (value('RZ') == 3) or (value('RZ') == 5) or (value('RZ') == 7) or (value('RZ') == 9) or (value('RZ') == 11) {
if (count($miss) == 0);
  goToPage('next');
}
text('missingU102');
question('=102', $miss);
}

RZ stellt hierbei die Gruppenvariable dar.

by s109993 (10.2k points)
Was funktioniert denn nicht genau, bzw. wird Ihnen ein Fehler angezeigt oder ist das Ergebnis nicht wie von Ihnen gewünscht?

2 Answers

0 votes
by s130121 (140 points)

Auf der entsprechenden Seite erscheint folgende Fehlermeldung:

Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Befehl oder String (Text) nicht abgeschlossen

Hinter einem Befehl wie z.B. question() steht kein Strichpunkt oder
ein String (Text in Anführungszeichen) ist nicht abgeschlossen oder
im String selbst kommt ein Anführungszeichen vor, z.B. html('Mach's besser!'); – in diesem Fall stellen Sie dem Anführungszeichen einen Backslash () voran.
Möglicherweise stimmen die öffnenenden und schließenden geschweiften Klammern für Anweisungsblöcke auch nicht überein.
PHP-Code

001 namespace s2survey\questionnaire\environment;
002
003 if (value('RZ') == 1) or (value('RZ') == 3) or (value('RZ') == 5) or (value('RZ') == 7) or (value('RZ') == 9) or (value('RZ') == 11) {
004 $miss = getItems('U102', 'is', -9);
005 }
006 if (value('RZ') == 1) or (value('RZ') == 3) or (value('RZ') == 5) or (value('RZ') == 7) or (value('RZ') == 9) or (value('RZ') == 11) {

0 votes
by SoSci Survey (305k points)

Die IF-Bedingung muss (komplett) in einer Klammer stehen.

if (value('RZ') == 1) or

Hier endet die Klammer schon nach dem ==1, entsprechend ist PHP überrascht, dass da ein "or" kommt. Setzen Sie daher nochmal eine Klammer um die gesamte Bedingung außenherum.

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

...