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

Wir möchten eine Randomisierung festlegen, die zum Einen, eine unterschiedliche Seitenreihenfolge festlegt für jede Versuchsperson und zum Anderen blockrandomisiert, so dass gleich viele männliche wie weibliche Teilnehmer eine Bedingung erhalten (Story 1 (=W401-404) und Story 2 (=M401-404)).

Wir gehen momentan wie folgt vor:
(Wert SZ01 == 1 bedeutet weiblich; SZ01 == 2 bedeutet männlich)

if (value('SZ01') == 1) {text('W401'); question('W402'); text('W403'); question('W404'); text('405'); question('W406'); text('W407'); question('W408')} 
elseif (value('SZ01') == 2) {text('M401'); question('M402'); text('M403'); question('M404'); text('M405'); question('M406'); text('M407'); question('M408')}

Bei der Randomisierung haben wir 1 und 2 entsprechend für männlich und weiblich vermerkt.

Allerdings erhalten wir den folgenden Fehler im Fragebogen:

Befehl oder String (Text) nicht abgeschlossenHinter 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('SZ01') == 1) {text('W401'); question('W402'); text('W403'); question('W404'); text('405'); question('W406'); text('W407'); question('W408')} 
004 elseif (value('SZ01') == 2) {text('M401'); question('M402'); text('M403'); question('M404'); text('M405'); question('M406'); text('M407'); question('M408')}
005 return 'ok';

Wir wären für Hilfe sehr dankbar!

1 Answer

0 votes
by SoSci Survey (327k points)

Ich Code ist nicht direkt sauber formatiert. Wenn man ihn ein wenig anders schreibt...

if (value('SZ01') == 1) {
  text('W401'); 
  question('W402'); 
  text('W403'); 
  question('W404'); 
  text('405'); 
  question('W406'); 
  text('W407'); 
  question('W408')
}  elseif (value('SZ01') == 2) {
  text('M401'); 
  question('M402'); 
  text('M403'); 
  question('M404'); 
  text('M405'); 
  question('M406'); 
  text('M407'); 
  question('M408')
}

... dann erkennt man, dass in der jeweils letzten Zeile der beiden Blöcke ein Semikolon nach dem question()-Befehl fehlt.

Vermutlich möchten Sie aber ohnehin nicht alle Texte und Fragen auf einer Seite anzeigen, sodass Sie den Code wohl auf mehrere Seiten verteilen müssen. Also auf Seite 1 z.B.

if (value('SZ01') == 1) {
  text('W401'); 
  question('W402'); 
}  elseif (value('SZ01') == 2) {
  text('M401'); 
  question('M402'); 
}

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

...