0 votes
in SoSci Survey (dt.) by s047554 (195 points)
edited by SoSci Survey
$selected = getItems('ZO02', 'is', 2);
if (count($selected) > 0) {
shuffle($selected);
$item = $selected[0];
} else {
if($item==1) {
text('ZO03');
}
if($item==2) {
text('ZO04');
}
if($item==3) {
text('ZO05');
}
if($item==4) {
text('ZO06');
}
if($item==5) {
text('ZO07');
}
if($item==6) {
text('ZO08');
}
}
put('ZO02', $item);

Das ist mein Code.
Leider erhalte ich folgende Fehlermeldungen:

Fehler im Fragebogen: Die PHP-Variable $item wurde verwendet, in diesem PHP-Code aber noch nicht definiert (sie enthält noch keinen Wert).

PHP-Code

005 shuffle($selected);
006 $item = $selected[0];
007 } else {
**008** if($item==1) {
009 text('ZO03');
010 }
011 if($item==2) {

--> Ich dachte der Wert ermittelt sich durch die Antworten der Probanden bei der Mehrfachauswahl.

Im Befehl put() muss die Kennung eines Items angegeben werden. ZO02 beschreibt aber nur eine Frage.
--> Ich möchte den Wert speichern, den die Shuffle Funktion ausgegeben hat, damit ich weiß auf welche Antwort sich die Probanden bezogen haben.

Vielen Dank

related to an answer for: Randomisierung nach Mehrfachauswahl

1 Answer

0 votes
by SoSci Survey (304k points)

Ihre IF-Bedingung ist nicht ganz richtig geschachtelt - ich habe Ihren Code einmal mit Leerzeichen versehen:

$selected = getItems('ZO02', 'is', 2);
if (count($selected) > 0) {
  shuffle($selected);
  $item = $selected[0];
} else {
  if($item==1) {
    text('ZO03');
  }
  if($item==2) {
    text('ZO04');
  }
  // u.s.w.
}
put('ZO02', $item);

Sie sehen: Wenn mehr als ein Item in ZO02 ausgewählt wurde (count($selected) > 0), dann wird eines davon zufällig ausgewählt und in $itemgespeichert. Wenn keines ausgewählt wurde, kommen die ganzen "unteren" IF-Filter zum Einsatz ($item==1) - aber dann wurde die Variable $item ja nicht definiert.

Ich vermute, Sie möchten den Teilnehmer zur nächsten Seite schicken, wenn er keine der Optionen ausgewählt hat:

$selected = getItems('ZO02', 'is', 2);
if (count($selected) > 0) {
  shuffle($selected);
  $item = $selected[0];
  put('ZO02', $item);
} else {
  goToPage('next');
  put('ZO02', '-1');
}

Und darunter platzieren Sie dann (außerhalb der vorigen Klammer) Ihre IF-Filter, um Inhalte anzuzeigen:

if($item==1) {
  text('ZO03');
}
if($item==2) {
  text('ZO04');
}
// u.s.w.
asked Feb 15, 2018 in SoSci Survey (dt.) by s047554 (195 points)
edited Feb 16, 2018 by s047554
Zufallsauswahl nach Mehrfachnennung

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

...