0 votes
in SoSci Survey (dt.) by s085346 (300 points)
edited by s085346

Der vorgeschlagene Lösungsansatz war folgender

Ich würde tatsächlich empfehlen, dass Sie für jeden Block eine eigene
interne Variablen-Frage anlegen. Das ist in der Auswertung deutlich
(!) handlicher. Und in einer weiteren solchen Frage speichern Sie dann
(wie bisher schon) die Reihenfolge der Blöcke.

Stellen Sie sich einfach vor, Sie würden erst einmal nur die
Reihenfolge innerhalb der Blöcke rotieren. Nur, dass Sie dafür kkeine
eigene Variable definieren, sondern mit einem Eintrag (=ein Block) aus
dem "kompletten" Array aller Seiten arbeiten.

Legen Sie ein Array mit allen Block-Nummern (Sie haben diese als 1,
19, 37, ... bezeichnet) an und als Werte die Kennungen der IV-Fragen,
wo die Rotation hingespeichert werden soll. Dann können Sie in einer
kleinen FOREACH-Schleife gemütlich alle Blöcke rotieren und die
Abfolge abspeichern. Details gerne in einer neuen Frage hier im
Online-Support :)

Meine Blöcke sehen aus wie folgt:

$blocks = array (
'B1' => array('ID10CtT1Dec-ID10CtT1IT2','ID10CtT2Dec-ID10CtT2IT2','ID10CtT3Dec-ID10CtT3IT2','ID11CtT1Dec-ID11CtT1IT2','ID11CtT2Dec-ID11CtT2IT2','ID11CtT3Dec-ID11CtT3IT2',
	'ID12CtT1Dec-ID12CtT1IT2','ID12CtT2Dec-ID12CtT2IT2','ID12CtT3Dec-ID12CtT3IT2','ID13CtT1Dec-ID13CtT1IT2','ID13CtT2Dec-ID13CtT2IT2','ID13CtT3Dec-ID13CtT3IT2',
	'ID14CtT1Dec-ID14CtT1IT2','ID14CtT2Dec-ID14CtT2IT2','ID14CtT3Dec-ID14CtT3IT2','ID15CtT1Dec-ID15CtT1IT2','ID15CtT2Dec-ID15CtT2IT2','ID15CtT3Dec-ID15CtT3IT2'),

'B2' => array('ID20CtT1Dec-ID20CtT1IT2','ID20CtT2Dec-ID20CtT2IT2','ID20CtT3Dec-ID20CtT3IT2','ID21CtT1Dec-ID21CtT1IT2','ID21CtT2Dec-ID21CtT2IT2','ID21CtT3Dec-ID21CtT3IT2',
	'ID22CtT1Dec-ID22CtT1IT2','ID22CtT2Dec-ID22CtT2IT2','ID22CtT3Dec-ID22CtT3IT2','ID23CtT1Dec-ID23CtT1IT2','ID23CtT2Dec-ID23CtT2IT2','ID23CtT3Dec-ID23CtT3IT2',
	'ID24CtT1Dec-ID24CtT1IT2','ID24CtT2Dec-ID24CtT2IT2','ID24CtT3Dec-ID24CtT3IT2','ID25CtT1Dec-ID25CtT1IT2','ID25CtT2Dec-ID25CtT2IT2','ID25CtT3Dec-ID25CtT3IT2'),

'B3' => array('ID30CtT1Dec-ID30CtT1IT2','ID30CtT2Dec-ID30CtT2IT2','ID30CtT3Dec-ID30CtT3IT2','ID31CtT1Dec-ID31CtT1IT2','ID31CtT2Dec-ID31CtT2IT2','ID31CtT3Dec-ID31CtT3IT2',
	'ID32CtT1Dec-ID32CtT1IT2','ID32CtT2Dec-ID32CtT2IT2','ID32CtT3Dec-ID32CtT3IT2','ID33CtT1Dec-ID33CtT1IT2','ID33CtT2Dec-ID33CtT2IT2','ID33CtT3Dec-ID33CtT3IT2',
	'ID34CtT1Dec-ID34CtT1IT2','ID34CtT2Dec-ID34CtT2IT2','ID34CtT3Dec-ID34CtT3IT2','ID35CtT1Dec-ID35CtT1IT2','ID35CtT2Dec-ID35CtT2IT2','ID35CtT3Dec-ID35CtT3IT2'),

'B4' => array('ID40CtT1Dec-ID40CtT1IT2','ID40CtT2Dec-ID40CtT2IT2','ID40CtT3Dec-ID40CtT3IT2','ID41CtT1Dec-ID41CtT1IT2','ID41CtT2Dec-ID41CtT2IT2','ID41CtT3Dec-ID41CtT3IT2',
	'ID42CtT1Dec-ID42CtT1IT2','ID42CtT2Dec-ID42CtT2IT2','ID42CtT3Dec-ID42CtT3IT2','ID43CtT1Dec-ID43CtT1IT2','ID43CtT2Dec-ID43CtT2IT2','ID43CtT3Dec-ID43CtT3IT2',
	'ID44CtT1Dec-ID44CtT1IT2','ID44CtT2Dec-ID44CtT2IT2','ID44CtT3Dec-ID44CtT3IT2','ID45CtT1Dec-ID45CtT1IT2','ID45CtT2Dec-ID45CtT2IT2','ID45CtT3Dec-ID45CtT3IT2'),

'B5' => array('ID50CtT1Dec-ID50CtT1IT2','ID50CtT2Dec-ID50CtT2IT2','ID50CtT3Dec-ID50CtT3IT2','ID51CtT1Dec-ID51CtT1IT2','ID51CtT2Dec-ID51CtT2IT2','ID51CtT3Dec-ID51CtT3IT2',
	'ID52CtT1Dec-ID52CtT1IT2','ID52CtT2Dec-ID52CtT2IT2','ID52CtT3Dec-ID52CtT3IT2','ID53CtT1Dec-ID53CtT1IT2','ID53CtT2Dec-ID53CtT2IT2','ID53CtT3Dec-ID53CtT3IT2',
	'ID54CtT1Dec-ID54CtT1IT2','ID54CtT2Dec-ID54CtT2IT2','ID54CtT3Dec-ID54CtT3IT2','ID55CtT1Dec-ID55CtT1IT2','ID55CtT2Dec-ID55CtT2IT2','ID55CtT3Dec-ID55CtT3IT2'),

'B6' => array('ID60CtT1Dec-ID60CtT1IT2','ID60CtT2Dec-ID60CtT2IT2','ID60CtT3Dec-ID60CtT3IT2','ID61CtT1Dec-ID61CtT1IT2','ID61CtT2Dec-ID61CtT2IT2','ID61CtT3Dec-ID61CtT3IT2',
	'ID62CtT1Dec-ID62CtT1IT2','ID62CtT2Dec-ID62CtT2IT2','ID62CtT3Dec-ID62CtT3IT2','ID63CtT1Dec-ID63CtT1IT2','ID63CtT2Dec-ID63CtT2IT2','ID63CtT3Dec-ID63CtT3IT2',
	'ID64CtT1Dec-ID64CtT1IT2','ID64CtT2Dec-ID64CtT2IT2','ID64CtT3Dec-ID64CtT3IT2','ID65CtT1Dec-ID65CtT1IT2','ID65CtT2Dec-ID65CtT2IT2','ID65CtT3Dec-ID65CtT3IT2')
				 
);

Inhaltlich habe ich Ihre herangehensweise verstanden, umgesetzt bekomme ich sie nicht. Ich möchte ja nun die randomisierte Reihenfolge von B1-B6 in IV01 (mit 6 Werten) speichern und gleichzeitig die Reihenfolgen der Trials innerhalb B1-B6 in die IVs IV02-IV07 (mit je 18 Werten speichern) + schließlich die Reihenfolge auch mit setPageOrder setzen und auf Seite 'X' fortfahren. Hier bin ich leider bislang gescheitert.

Vielen Dank für Ihre Zeit und Hilfe!

Update:

Meine Lösung, die zwar alle Randomisierung korrekt speichert, sieht wie folgt aus. Allerdings werden beim Durchlaufen manchmal Blöcke (obwohl Reihenfolge gespeichert) nicht präsentiert. Außerdem erscheinen ab ca. der Hälfte (bei Block 3 oder 4) auf einmal alle Frageseiten eines Trials direkt untereinander auf einer Seite. Das hängt nicht systematisch mit einem Block zu sammen, sondern passiert unabhängig der Block Nummer grob nach der Hälfte. Die erste Hälfte läuft reibungslos.

$blocks = array (
'B1' => array('ID10CtT1Dec-ID10CtT1IT2','ID10CtT2Dec-ID10CtT2IT2','ID10CtT3Dec-ID10CtT3IT2','ID11CtT1Dec-ID11CtT1IT2','ID11CtT2Dec-ID11CtT2IT2','ID11CtT3Dec-ID11CtT3IT2',
	'ID12CtT1Dec-ID12CtT1IT2','ID12CtT2Dec-ID12CtT2IT2','ID12CtT3Dec-ID12CtT3IT2','ID13CtT1Dec-ID13CtT1IT2','ID13CtT2Dec-ID13CtT2IT2','ID13CtT3Dec-ID13CtT3IT2',
	'ID14CtT1Dec-ID14CtT1IT2','ID14CtT2Dec-ID14CtT2IT2','ID14CtT3Dec-ID14CtT3IT2','ID15CtT1Dec-ID15CtT1IT2','ID15CtT2Dec-ID15CtT2IT2','ID15CtT3Dec-ID15CtT3IT2'),

'B2' => array('ID20CtT1Dec-ID20CtT1IT2','ID20CtT2Dec-ID20CtT2IT2','ID20CtT3Dec-ID20CtT3IT2','ID21CtT1Dec-ID21CtT1IT2','ID21CtT2Dec-ID21CtT2IT2','ID21CtT3Dec-ID21CtT3IT2',
	'ID22CtT1Dec-ID22CtT1IT2','ID22CtT2Dec-ID22CtT2IT2','ID22CtT3Dec-ID22CtT3IT2','ID23CtT1Dec-ID23CtT1IT2','ID23CtT2Dec-ID23CtT2IT2','ID23CtT3Dec-ID23CtT3IT2',
	'ID24CtT1Dec-ID24CtT1IT2','ID24CtT2Dec-ID24CtT2IT2','ID24CtT3Dec-ID24CtT3IT2','ID25CtT1Dec-ID25CtT1IT2','ID25CtT2Dec-ID25CtT2IT2','ID25CtT3Dec-ID25CtT3IT2'),

'B3' => array('ID30CtT1Dec-ID30CtT1IT2','ID30CtT2Dec-ID30CtT2IT2','ID30CtT3Dec-ID30CtT3IT2','ID31CtT1Dec-ID31CtT1IT2','ID31CtT2Dec-ID31CtT2IT2','ID31CtT3Dec-ID31CtT3IT2',
	'ID32CtT1Dec-ID32CtT1IT2','ID32CtT2Dec-ID32CtT2IT2','ID32CtT3Dec-ID32CtT3IT2','ID33CtT1Dec-ID33CtT1IT2','ID33CtT2Dec-ID33CtT2IT2','ID33CtT3Dec-ID33CtT3IT2',
	'ID34CtT1Dec-ID34CtT1IT2','ID34CtT2Dec-ID34CtT2IT2','ID34CtT3Dec-ID34CtT3IT2','ID35CtT1Dec-ID35CtT1IT2','ID35CtT2Dec-ID35CtT2IT2','ID35CtT3Dec-ID35CtT3IT2'),

'B4' => array('ID40CtT1Dec-ID40CtT1IT2','ID40CtT2Dec-ID40CtT2IT2','ID40CtT3Dec-ID40CtT3IT2','ID41CtT1Dec-ID41CtT1IT2','ID41CtT2Dec-ID41CtT2IT2','ID41CtT3Dec-ID41CtT3IT2',
	'ID42CtT1Dec-ID42CtT1IT2','ID42CtT2Dec-ID42CtT2IT2','ID42CtT3Dec-ID42CtT3IT2','ID43CtT1Dec-ID43CtT1IT2','ID43CtT2Dec-ID43CtT2IT2','ID43CtT3Dec-ID43CtT3IT2',
	'ID44CtT1Dec-ID44CtT1IT2','ID44CtT2Dec-ID44CtT2IT2','ID44CtT3Dec-ID44CtT3IT2','ID45CtT1Dec-ID45CtT1IT2','ID45CtT2Dec-ID45CtT2IT2','ID45CtT3Dec-ID45CtT3IT2'),

'B5' => array('ID50CtT1Dec-ID50CtT1IT2','ID50CtT2Dec-ID50CtT2IT2','ID50CtT3Dec-ID50CtT3IT2','ID51CtT1Dec-ID51CtT1IT2','ID51CtT2Dec-ID51CtT2IT2','ID51CtT3Dec-ID51CtT3IT2',
	'ID52CtT1Dec-ID52CtT1IT2','ID52CtT2Dec-ID52CtT2IT2','ID52CtT3Dec-ID52CtT3IT2','ID53CtT1Dec-ID53CtT1IT2','ID53CtT2Dec-ID53CtT2IT2','ID53CtT3Dec-ID53CtT3IT2',
	'ID54CtT1Dec-ID54CtT1IT2','ID54CtT2Dec-ID54CtT2IT2','ID54CtT3Dec-ID54CtT3IT2','ID55CtT1Dec-ID55CtT1IT2','ID55CtT2Dec-ID55CtT2IT2','ID55CtT3Dec-ID55CtT3IT2'),

'B6' => array('ID60CtT1Dec-ID60CtT1IT2','ID60CtT2Dec-ID60CtT2IT2','ID60CtT3Dec-ID60CtT3IT2','ID61CtT1Dec-ID61CtT1IT2','ID61CtT2Dec-ID61CtT2IT2','ID61CtT3Dec-ID61CtT3IT2',
	'ID62CtT1Dec-ID62CtT1IT2','ID62CtT2Dec-ID62CtT2IT2','ID62CtT3Dec-ID62CtT3IT2','ID63CtT1Dec-ID63CtT1IT2','ID63CtT2Dec-ID63CtT2IT2','ID63CtT3Dec-ID63CtT3IT2',
	'ID64CtT1Dec-ID64CtT1IT2','ID64CtT2Dec-ID64CtT2IT2','ID64CtT3Dec-ID64CtT3IT2','ID65CtT1Dec-ID65CtT1IT2','ID65CtT2Dec-ID65CtT2IT2','ID65CtT3Dec-ID65CtT3IT2')
				 
);

// Den ersten Block aus dem Array $blocks herausnehmen, etc.
$B1 = array_shift($blocks);
$B2 = array_shift($blocks);
$B3 = array_shift($blocks);
$B4 = array_shift($blocks);
$B5 = array_shift($blocks);
$B6 = array_shift($blocks);


//Hier Trials innerhalb der Blöcke

$key1 = array_keys($B1);
shuffle($key1); 
$order1 = array();
for ($i=0; $i<count($key1); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id1 = id('IV02', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id1, $key1[$i]);
  $order1[$i] = $B1[$key1[$i]];
}

$key2 = array_keys($B2);
shuffle($key2); 
$order2 = array();
for ($i=0; $i<count($key2); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id2 = id('IV03', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id2, $key2[$i]);
  $order2[$i] = $B2[$key2[$i]];
}

$key3 = array_keys($B3);
shuffle($key3); 
$order3 = array();
for ($i=0; $i<count($key3); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id3 = id('IV04', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id3, $key3[$i]);
  $order3[$i] = $B3[$key3[$i]];
}

$key4 = array_keys($B4);
shuffle($key4); 
$order4 = array();
for ($i=0; $i<count($key4); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id4 = id('IV05', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id4, $key4[$i]);
  $order4[$i] = $B4[$key4[$i]];
}

$key5 = array_keys($B5);
shuffle($key5); 
$order5 = array();
for ($i=0; $i<count($key5); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id5 = id('IV06', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id5, $key5[$i]);
  $order5[$i] = $B5[$key5[$i]];
}

$key6 = array_keys($B6);
shuffle($key6); 
$order6 = array();
for ($i=0; $i<count($key6); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id6 = id('IV07', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id6, $key6[$i]);
  $order6[$i] = $B6[$key6[$i]];
}

//Hier die Blöcke

$blocks_order = array (
 $order1,
 $order2,
 $order3,
 $order4,
 $order5,
 $order6
);

$rand = array_keys($blocks_order);
shuffle($rand);

$rotation = [];
for ($i=0; $i<count($rand); $i++) {
  $id0 = id('IV01', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id0, $rand[$i]);
  $rotation[$i] = $blocks_order[$rand[$i]];
}

setPageOrder($rotation[0],  $rotation[1], $rotation[2], $rotation[3], $rotation[4], $rotation[5], 'FFMQ' );
by SoSci Survey (326k points)
> Inhaltlich habe ich Ihre herangehensweise verstanden, umgesetzt bekomme ich sie nicht.

Fangen Sie mit dem Code an, den Sie zum Mischen mit Speichern der Reihenfolge verwenden. Also das mit array_keys() und shuffle(). Dort "stecken" Sie ein Array hinein. Machen Sie im ersten Schritt genau das mit $blocks['B1'].
by s085346 (300 points)
Vielen Dank, ich habe nun durch Ihre Hilfe einen funktionierenden Weg gefunden!
by s085346 (300 points)
Ich hatte mich wohl etwas zu früh gefreut. Das Problem und den Code habe ich oben ergänzt
by SoSci Survey (326k points)
Schade, schade ... aber kein Problem, dann sehen wir uns das gleich mal an.

1 Answer

0 votes
by SoSci Survey (326k points)
selected by s085346
 
Best answer

Ich habe den Code mal ein wenig schlanker formuliert - mit Schleife statt Wiederholung:

$blocks = array (
  'B1' => array('ID10CtT1Dec-ID10CtT1IT2','ID10CtT2Dec-ID10CtT2IT2','ID10CtT3Dec-ID10CtT3IT2','ID11CtT1Dec-ID11CtT1IT2','ID11CtT2Dec-ID11CtT2IT2','ID11CtT3Dec-ID11CtT3IT2',
	'ID12CtT1Dec-ID12CtT1IT2','ID12CtT2Dec-ID12CtT2IT2','ID12CtT3Dec-ID12CtT3IT2','ID13CtT1Dec-ID13CtT1IT2','ID13CtT2Dec-ID13CtT2IT2','ID13CtT3Dec-ID13CtT3IT2',
	'ID14CtT1Dec-ID14CtT1IT2','ID14CtT2Dec-ID14CtT2IT2','ID14CtT3Dec-ID14CtT3IT2','ID15CtT1Dec-ID15CtT1IT2','ID15CtT2Dec-ID15CtT2IT2','ID15CtT3Dec-ID15CtT3IT2'),

  'B2' => array('ID20CtT1Dec-ID20CtT1IT2','ID20CtT2Dec-ID20CtT2IT2','ID20CtT3Dec-ID20CtT3IT2','ID21CtT1Dec-ID21CtT1IT2','ID21CtT2Dec-ID21CtT2IT2','ID21CtT3Dec-ID21CtT3IT2',
	'ID22CtT1Dec-ID22CtT1IT2','ID22CtT2Dec-ID22CtT2IT2','ID22CtT3Dec-ID22CtT3IT2','ID23CtT1Dec-ID23CtT1IT2','ID23CtT2Dec-ID23CtT2IT2','ID23CtT3Dec-ID23CtT3IT2',
	'ID24CtT1Dec-ID24CtT1IT2','ID24CtT2Dec-ID24CtT2IT2','ID24CtT3Dec-ID24CtT3IT2','ID25CtT1Dec-ID25CtT1IT2','ID25CtT2Dec-ID25CtT2IT2','ID25CtT3Dec-ID25CtT3IT2'),

  'B3' => array('ID30CtT1Dec-ID30CtT1IT2','ID30CtT2Dec-ID30CtT2IT2','ID30CtT3Dec-ID30CtT3IT2','ID31CtT1Dec-ID31CtT1IT2','ID31CtT2Dec-ID31CtT2IT2','ID31CtT3Dec-ID31CtT3IT2',
	'ID32CtT1Dec-ID32CtT1IT2','ID32CtT2Dec-ID32CtT2IT2','ID32CtT3Dec-ID32CtT3IT2','ID33CtT1Dec-ID33CtT1IT2','ID33CtT2Dec-ID33CtT2IT2','ID33CtT3Dec-ID33CtT3IT2',
	'ID34CtT1Dec-ID34CtT1IT2','ID34CtT2Dec-ID34CtT2IT2','ID34CtT3Dec-ID34CtT3IT2','ID35CtT1Dec-ID35CtT1IT2','ID35CtT2Dec-ID35CtT2IT2','ID35CtT3Dec-ID35CtT3IT2'),

  'B4' => array('ID40CtT1Dec-ID40CtT1IT2','ID40CtT2Dec-ID40CtT2IT2','ID40CtT3Dec-ID40CtT3IT2','ID41CtT1Dec-ID41CtT1IT2','ID41CtT2Dec-ID41CtT2IT2','ID41CtT3Dec-ID41CtT3IT2',
	'ID42CtT1Dec-ID42CtT1IT2','ID42CtT2Dec-ID42CtT2IT2','ID42CtT3Dec-ID42CtT3IT2','ID43CtT1Dec-ID43CtT1IT2','ID43CtT2Dec-ID43CtT2IT2','ID43CtT3Dec-ID43CtT3IT2',
	'ID44CtT1Dec-ID44CtT1IT2','ID44CtT2Dec-ID44CtT2IT2','ID44CtT3Dec-ID44CtT3IT2','ID45CtT1Dec-ID45CtT1IT2','ID45CtT2Dec-ID45CtT2IT2','ID45CtT3Dec-ID45CtT3IT2'),

  'B5' => array('ID50CtT1Dec-ID50CtT1IT2','ID50CtT2Dec-ID50CtT2IT2','ID50CtT3Dec-ID50CtT3IT2','ID51CtT1Dec-ID51CtT1IT2','ID51CtT2Dec-ID51CtT2IT2','ID51CtT3Dec-ID51CtT3IT2',
	'ID52CtT1Dec-ID52CtT1IT2','ID52CtT2Dec-ID52CtT2IT2','ID52CtT3Dec-ID52CtT3IT2','ID53CtT1Dec-ID53CtT1IT2','ID53CtT2Dec-ID53CtT2IT2','ID53CtT3Dec-ID53CtT3IT2',
	'ID54CtT1Dec-ID54CtT1IT2','ID54CtT2Dec-ID54CtT2IT2','ID54CtT3Dec-ID54CtT3IT2','ID55CtT1Dec-ID55CtT1IT2','ID55CtT2Dec-ID55CtT2IT2','ID55CtT3Dec-ID55CtT3IT2'),

  'B6' => array('ID60CtT1Dec-ID60CtT1IT2','ID60CtT2Dec-ID60CtT2IT2','ID60CtT3Dec-ID60CtT3IT2','ID61CtT1Dec-ID61CtT1IT2','ID61CtT2Dec-ID61CtT2IT2','ID61CtT3Dec-ID61CtT3IT2',
	'ID62CtT1Dec-ID62CtT1IT2','ID62CtT2Dec-ID62CtT2IT2','ID62CtT3Dec-ID62CtT3IT2','ID63CtT1Dec-ID63CtT1IT2','ID63CtT2Dec-ID63CtT2IT2','ID63CtT3Dec-ID63CtT3IT2',
	'ID64CtT1Dec-ID64CtT1IT2','ID64CtT2Dec-ID64CtT2IT2','ID64CtT3Dec-ID64CtT3IT2','ID65CtT1Dec-ID65CtT1IT2','ID65CtT2Dec-ID65CtT2IT2','ID65CtT3Dec-ID65CtT3IT2')
				 
);

$intIDs = [
  'B1' => 'IV02',
  'B2' => 'IV03',
  'B3' => 'IV04',
  'B4' => 'IV05',
  'B5' => 'IV06',
  'B6' => 'IV07'
];

foreach ($blocks as $blockID => $pages) {
  $intID = $intIDs[$blockID];  // IV02 u.s.w.
  $keys = array_keys($pages);
  shuffle($keys); 
  $order = [];
  for ($i=0; $i<count($keys); $i++) {
    // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
    $id1 = id($intID, $i + 1);
    // Hier den Wert aus dem Array speichern
    put($id1, $keys[$i]);
    $order[] = $pages[$keys[$i]];
  }
  $blocks[$blockID] = $order;
}

$keys = array_keys($blocks);
shuffle($keys);

$rotation = [];
for ($i=0; $i<count($keys); $i++) {
  $id0 = id('IV01', $i + 1);
  // Hier den Wert aus dem Array speichern
  put($id0, $keys[$i]);
  $rotation[] = $blocks[$keys[$i]];
}

setPageOrder($rotation, 'FFMQ' );

Aber nach allem was ich sehe, sollte Ihr Code eigentlich sauber funktionieren. Die Reihenfolge der Blöcke steht in IV01** und die Reihenfolge innerhalb jedes Blocks dann in IV02 (Block B1), IV03 (Block B2) u.s.w.

Jetzt müssten Sie bitte kurz schildern, was genau nicht funktioniert?

by s085346 (300 points)
Das ist zu Beispiel die Information, von der ersten Seite, ab der das Problem unystematisch auftritt. Seite 69 war die Entscheidung auf der vorhergehenden Seite. Alle folgenden Seiten sollten wie bisher auf eigenen Seiten dargestellt sein, erscheinen nun aber gesammelt.

[Information]    Interview Nummer 58 wird fortgesetzt
[Information]    Der Fragebogen 0_emo_v2 im Projekt ugb wird verwendet
[Information]    Die Verweildauer auf Seite 69 war 2 Sekunden
[Verarbeitung]    Lese Antworten von Seite 69
[Information]    Antwort auf A114_01 = 4
[Information]    Antwort auf A114_01a = 1234
[Information]    Fragen bisher zu 98% vollständig beantwortet
[Information]    Entsprechend der vorher festgelegten Seitenabfolge wird Seite 70 [ID14CtT2F] angezeigt
[Verarbeitung]    Erstelle Seite 70 in Fragebogen 0_emo_v2
[Information]    value("ZF01") = 1
[Information]    value("A114_01") = 4
[Information]    Die interne Variable IV11_56 wird mit dem Wert 2 belegt.
[Information]    Springe zur nächsten Seite Nr. 71
[Verarbeitung]    Erstelle Seite 71 in Fragebogen 0_emo_v2
[Information]    Springe zur nächsten Seite Nr. 72
[Verarbeitung]    Erstelle Seite 72 in Fragebogen 0_emo_v2
[Information]    value("A114_01") = 4
[Information]    value("A114_01") = 4
[Information]    value("A114_01") = 4
[Information]    value("A114_01") = 4
[Information]    value("A114_01") = 4
[Information]    Springe zur nächsten Seite Nr. 73
[Verarbeitung]    Erstelle Seite 73 in Fragebogen 0_emo_v2
[Information]    Springe zur nächsten Seite Nr. 79
[Verarbeitung]    Erstelle Seite 79 in Fragebogen 0_emo_v2
[Inhalt]    Erstelle Frage A116
[Information]    Folgende Platzhalter sind vorbereitet:
%remain% = (Text) 0.5
by SoSci Survey (326k points)
Gut, die ganzen "Springe zur nächsten Seite ..." sprechen dafür, dass auf Seite 70, 71, 72 irgendwo ein goToPage('next') stehen könnte. Ist das der Fall?
by s085346 (300 points)
Ja, innerhalb eines jeden Trials "laufen" nach der Entscheidung auf S.1 die 4 Feedbackseiten (S.2-5) nacheinander mit einem Timer und automatischem Weiter durch. Demnach sind auf den Seiten 2-5 eines Trials immer goToPage('next') Befehle. Allerdings ist das in JEDEM Trial der Fall, also auch in den ganzen bevor der Fehler auftritt.
by SoSci Survey (326k points)
Ich vermute das Problem besteht dann darin, dass Ihr Timer einfach abgelaufen ist und daher die Seiten alle übersprungen werden.

Vermutlich müssten Sie für jeden Block einen separaten Timer laufen lassen - und entsprechend die Timer-Variable (im PHP-Code) anders benennen.
by s085346 (300 points)
Was ein abgelaufener Timer alles anrichten kann. Vielen Dank für den Hinweis und Ihre Geduld. So wie es aussieht, läuft jetzt alles :)

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

...