0 votes
in SoSci Survey (dt.) by s120134 (180 points)
edited by SoSci Survey

Hallo SoSci Survey,

mein Zufallsgenerator spuckt drei Varianten aus. Bei Variante 1 und 2 sollen zwei Fragen kommen, bei denen mir die Variablen aber nicht so gefallen haben (ursprünglich 1-7), sodass ich diese mittels des folgenden Codes auf 0-6 geändert habe:

z.B.

$input = 'EM03';
$output = 'EM35';

$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);
}

Variante drei erhält diese Fragen allerdings nicht, sodass mir jetzt im Debug Mode angezeigt wird, dass für Frage EM03 keine Werte ermittelt werden konnten. Das ist an sich auch in Ordnung, da die Frage bei Variante 3 nicht gestellt wird und ich somit keine Werte brauche, aber wirkt sich dies irgendwie auf die Probanden aus, die Variante 3 zugelost sind?

Dankesehr!

1 Answer

0 votes
by SoSci Survey (304k points)

Prinzipiell können Sie natürlich mit noch einem IF dafür sorgen, dass der ganze Code überhaupt nicht ausgeführt wird, wenn Variante 3 gezogen wurde. Das wäre die Lösung für strenge Ästheten.

Ansonsten gilt: Hinweise (gelb) und Warnungen (orange) sieht nur der Projektleiter - Fehler (rot) werden auch im Interview angezeigt. In Ihrem Fall können Sie den PHP-Code also belassen, wie er ist.

by s120134 (180 points)
Angenommen ich bin so ein Ästhetiker, wäre der Code dann nur wie folgt:

if $input = 'EM03';
$output = 'EM35';

$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);
}

?
by SoSci Survey (304k points)
Ich weiß nicht, wie Ihre Variable aus der Zufallsauswahl heißt, aber es sähe eher so aus:

if (value('RG01') != 3) {
  $input = 'EM03';
  $output = 'EM35';
  // u.s.w.
  put(id($output, $item), $newCode);
}
by s120134 (180 points)
if (value('ZU01') != 3) {

$input = 'EM03';
$output = 'EM35';

$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);
}

So?

Also ZU01 ist die Zufallsfrage. Wird 1 oder 2 gezogen kommt es zu Frage EM03, bei der die Werte immer um 1 reduziert werden sollen. Wird 3 gezogen, soll einfach nichts passieren, da es dann schon einmal gar nicht zu Frage EM03 kommt.

if (value('ZU01') != 3) { >> Muss ich hier dann nicht 1 oder 2 einsetzen?

$input = 'EM03';
$output = 'EM35';

$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);
}
by SoSci Survey (304k points)
Das != heißt "ungleich". Also wird der Block nur dann ausgeführt, wenn nicht die 1 oder 2 gezogen wird. Das müsste zu Ihrem Anwendungsfall passen.
by s120134 (180 points)
Achsoooo, also ist der Wert der Zufallsfrage ungleich 3 (also 1 oder 2) wird das danach folgende ausgeführt. Wieder etwas gelernt :)

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

...