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

Vielen Dank für die schnelle Rückmeldung! Bei Eingabe der o.g. Codes erhalte ich zwar über drei Seiten hinweg die gemischten Fragen allerdings auch einen Fehlercode: Items in der nachfolgenden Fragen werden auf dieser Seite schon weiter oben angezeigt. Dies führt fast zwangsläufig zu Datenverlust! Falls Sie eine Frage mehrfach benötigen, legen Sie bitte eine Kopie der Frage an. Betroffen sind folgende Items: PE03_01.

Haben Sie dazu eine Idee?

Grundsätzlich könnte ich auch alle 45 Items in eine Frage packen und über drei Seiten verteilen aber es handelt sich um einen Fragebogen, der drei Unterkategorien hat, die ich letztlich auch einzeln auswerten möchte. Ich bin blutiger Anfänger mit R und weiß nicht, inwiefern mir das bei der Auswertung von Nachteil ist, wenn ich die drei Subskalen nicht von Beginn an definiere.

DANKE!

in SoSci Survey (dt.) by s093073 (130 points)

1 Answer

0 votes

DIe Fehlermeldung deutet darauf hin, dass Sie entweder neu mischen - was vom isset() verhindert werden sollte - oder dass Sie die Zahlen in der FOR-Schleife nicht korrekte eingestellt haben. Also 0/<15 auf der ersten Seite, 15/<30 auf der zweiten und 30/<45 auf der dritten Seite. Variante 1 wäre daran zu erkennen, dass sich die Fehlermeldung "nur" über eine handvoll Items beschwert. Variante 2 erkennen Sie daran, dass 15 Items moniert werden.

Ergänzen Sie in Ihrer Frage gerne den PHP-Code, den Sie auf den drei Seiten verwenden. Dann sollte das Problem schnell einzugrenzen sein.

by SoSci Survey (82.1k points)
Wenn Sie schreiben

$items = getItems('PE01', 'all');

dann definieren Sie damit die Variable $items, die Sie dann auch mischen:

shuffle($items);

Eine Variable $itemsPE01 gibt es erst, nachdem Sie in der vorletzten Zeile array_chunk() verwendet und das Ergebnis in diese Variable gespeichert haben.
Danke für die Hilfe! Ich habe nun folgenden Code:
if (!isset($items)) {
  // Alle Items der Frage PE01 auflisten
  $items = getItems('PE01', 'all');
  // Liste Mischen
  shuffle($items);
  // Abfolge speichern
  for ($i=0; $i<count($items); $i++) {
    $id = id('PE01', $i + 1);
    put($id, $items[$i]);
  }
  // Die Liste in Teillisten à 15 Items teilen
  $items = array_chunk($items, 15);
  // Die Variable für andere Seiten verfügbar machen
  registerVariable('itemsPE01');
}
question('PE01', $items[0]);

Auf Seite 1 erhalte ich allerdings für jedes der 45 Items folgende Information:
Der Befehl put() kann nur in eine interne Variable speichern. Die Frage PE01 ist nicht vom Typ "Interne Variablen".
Das isset() muss von den Variablen-Namen her mit dem registerVariable() und dem array_chunk() zusammenpassen - sonst klappt's nicht :)
... und natürlich benötigen Soe zum speichern der Abfolge wirklich interne Variablen, also eine zusätzliche Frage zu PE01: https://www.soscisurvey.de/help/doku.php/de:create:questions:internal
Vielen Dank für die Geduld!
...