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

Wir haben ein mal eine Umrechnung, damit die Codierung durch SSS mit den Punktwerten vom Testinstrument übereinstimmt:

$input = 'V202';
$output = 'V203';
$items = getItems($input, 'all');
foreach ($items as $item) {
  $orgCode = value(id($input, $item));
  if ($orgCode > 0) {
    $newCode = $orgCode - 1;
  } else {
    $newCode = $orgCode;
  }
  put(id($output, $item), $newCode);
}

Anschließend sollen in Abhängigkeit von einer anderen Frage Probandinnen, die zwei jeweils zwei Kriterien erfüllen, ausgeschlossen werden:

$sum1 = valueSum('V203', '01-11');

if (($sum1 > 10) and (value('PS12_02'))) or (($sum1 > 15) and (value('PS12_01'))) {
      goToPage('Abbruch');
}

Hier ist die 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 $sum1 = valueSum('V203', '01-11');
004 
005 if (($sum1 > 10) and (value('PS12_02'))) or (($sum1 > 15) and (value('PS12_01'))) {
006       return 'go:Abbruch';
007 }
008 return 'ok';
in SoSci Survey (dt.) by s192889 (150 points)
edited by SoSci Survey

1 Answer

0 votes

Ich trenne diese Zeile hier

if (($sum1 > 10) and (value('PS12_02'))) or (($sum1 > 15) and (value('PS12_01'))) {

mal in mehrere Zeilen

if (($sum1 > 10) and (value('PS12_02'))) or
   (($sum1 > 15) and (value('PS12_01')))
 {

Das "or" in der Mitte steht hier außerhalb jeglicher Klammer. Laut Definition muss die Bedingung eines IF aber immer in einer Klammer stehen - daher die Beschwerde von PHP.

Ich denke aber, dass der Teil value('PS12_02') ohnehin wenig sinnvoll sein könnte. Was ist das denn für eine Variable?

by SoSci Survey (229k points)
If's and or's
...