0 votes
in SoSci Survey (dt.) by s234370 (220 points)

Hallo,

ich habe diesen Code, der entweder eine von 2 Fallvignetten auswählt und zwei zugehörige Fragen darbietet. Die Reihenfolge der beiden Fragen in in beiden Vignetten in einer neuen Variable (pro Vignette gibt es eine) gespeichert, um Reihenfolgeneffekte berechnen zu können.
Lese ich die Daten im technischen Funktionstest aus, werde ich nicht wirklich schlau. Die Exceltabelle sagt, dassText in der Tabelle gespeichert werden sollte, es steht aber in beiden Variablen nur 1 oder 2.

Wie speichert die Funktion in folgendem Code die Reihenfolge genau ab und wie kann ich den Code ggf. so ändern, dass ich die dargebotene Reihenfolge herausfinden kann?

Hier der Code:

if (value('MD05') == 1) {
  if (!isset($itemsAB)) {
    $itemsAB = getItems('MD02', 'all');
    shuffle($itemsAB);
    registerVariable($itemsAB);
  }
  text('MD10');
  question('MD02', $itemsAB);
  putList('MD08_01', $itemsAB);
} elseif (value('MD05') == 2) {
  if (!isset($itemsCD)) {
    $itemsCD = getItems('MD03', 'all');
    shuffle($itemsCD);
    registerVariable($itemsCD);
  }
  text('MD11');
  question('MD03', $itemsCD);
  putList('MD08_02', $itemsCD);
}

Warnung
Bitte beachten Sie, dass die von random() oder shuffle() erzeugten Zufallswerte nicht automatisch im Datensatz gespeichert werden. Zum Speichern können Sie ggf. die Funktion put() verwenden.

by s234370 (220 points)
if (value('MD05') == 1) {
  if (!isset($itemsAB)) {
    $itemsAB = getItems('MD02', 'all');
    shuffle($itemsAB);
    registerVariable($itemsAB);
  }
  text('MD10');
  question('MD02', $itemsAB);
  putList('MD08_01', $itemsAB);
} elseif (value('MD05') == 2) {
  if (!isset($itemsCD)) {
    $itemsCD = getItems('MD03', 'all');
    shuffle($itemsCD);
    registerVariable($itemsCD);
  }
  text('MD11');
  question('MD03', $itemsCD);
  putList('MD08_02', $itemsCD);
}

1 Answer

0 votes
by SoSci Survey (327k points)

Die Exceltabelle sagt, dassText in der Tabelle gespeichert werden sollte, es steht aber in beiden Variablen nur 1 oder 2.

Die Standardvorgabe für interne Variablen sind beliebige Inhalte - also Text.

Sie können in MD08 aber die einzelnen Variablen auswählen und dort spezifizieren, welche Inhalte Sie tatsächlich hinein speichern möchten. Das kann eine Zahl sein oder sogar ein Code mit Beschriftung.

putList('MD08_01', $itemsAB);

Dieser Code ist inhaltliche nicht ganz sinnvoll. putList() speichert merhere Werte in mehrere Variablen. Dafür müssten Sie aber MD08 verwenden, und nicht MD08_01.

Wenn Sie in MD08_01 alle Werte aus $itemsAB speichern möchten, dann müssten Sie diese erst ein inen Text umwandeln, z.B. in eine Komma-separierte Liste:

putList('MD08_01', implode(', ', $itemsAB));

Wie speichert die Funktion in folgendem Code die Reihenfolge genau ab

Aktuell werden vermutlich die ersten Beiden Elemente aus der gemischten Itemliste in MD08_01 und MD08_02 gespeichert.

by s234370 (220 points)
Danke, implode() hat das Problem gefixt!

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

...