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

Liebe SosciSurvey-Community,

Ich habe eine kurze Frage bezüglich einer Randomisierung von Seiten und tue mich aktuell etwas schwierig damit, die beste Strategie bzw. den geeigneten PHP-Code zu finden.


Der Teil des Fragebogens, um den es mir geht, ist zwischen einigen Einführungsseiten und einem Abschließenden Rating und er ist wie folgt aufgebaut: Es kommt zuerst immer eine Seite mit einer Frage (Q), gefolgt von einer Seite mit einer allgemeinen Information (A) und zuletzt einer Seite mit einer Rückmeldung (B). Insgesamt gibt es 10 solcher Dreierblöcke, also:

Einführungsseiten - Q1-A1-B1, Q2-A2-B2, Q3-A3-B3,[…],Q10-A10-B10 - Rating

Ich möchte nun jeweils nur die Rückmeldung (B), also den dritten Teil in dieser Abfolge zwischen den Blöcken randomisieren, sodass B1-B10 jeweils einmal angezeigt werden.

Ich würde mich sehr freuen, wenn jemand einen Hinweis hätte, wie ich genau an dieses Problem herangehen kann bzw. welcher PHP-Code/Zufallsgenerator sich am besten eignet.

Vielen Dank im Voraus!

Beste Grüße

in SoSci Survey (dt.) by s113714 (280 points)

2 Answers

+1 vote
 
Best answer

Danke für Ihren Kommentar auf meine erste Antwort. Das hatte ich falsch verstanden. Sie haben also immer alle 10 Blöcke Q1-A1 bis Q10-A10, aber die B-Blöcke sollen an zufälliger Position erscheinen?

In dem Fall erstellen Sie ein Array mit den Seitenkenungen für die B-Blöcke, z.B.

$bList = [
  'B1',
  'B2',
  // ...
  'B10'
];

Diese Liste können Sie einfach mischen

shuffle($bList);

... und dann in die Seitenfolge einbauen, z.B. wie folgt:

setPageOrder(
  'Q1-A1', $bList[0],
  'Q2-A2', $bList[1],
  // ...
  'Q10-A10', $bList[9]
);

Bitte testen Sie das einmal un berichten sie, ob das in die Richtung geht, die Sie benötigen?

by SoSci Survey (205k points)
selected by s113714
Vielen Dank für Ihre sehr hilfreiche Antwort und entschuldigen Sie die späte Rückmeldung!

Das ist genau das, was ich benötigt habe!
+1 vote

Also im Prinzip genau der Anwendungsfall, der in der Anleitung Seiten rotieren beschrieben ist?

Sie würden einfach einen Zufallsgenerator mit den 10 möglichen Seitenabfolgen anlegen und die Ziehung dann an setPageOrder() übergeben.

by SoSci Survey (205k points)
Vielen Dank für Ihre Rückmeldung!

Ich bin mir nicht ganz sicher, ob ich das Problem mit der verlinkten Anleitung direkt lösen kann. Es gibt insgesamt 10 Blöcke, bestehend aus 3 Elementen. Nun sollen aber nicht die 10 Blöcke randomisiert werden, sondern nur das jeweils dritte Element soll zwischen den Blöcken ohne zurücklegen randomisiert wiedergegeben werden, sodass B1-B10 alle jeweils einmal vorkommen.

Wenn ich keinen Denkfehler habe, gäbe es also wesentlich mehr als 10 verschiedene Seitenabfolgen, weil ja jeder Wert (B1-B10) in jedem Block vorkommen könnte.
...