0 votes
in SoSci Survey (dt.) by s064504 (195 points)
edited by s064504

Hallo,
ich habe muss leider trotzdem diese Frage stellen (obwohl es eigtentlich eine Beschreibung dafür gibt) ich probiere jetzt schon einige Zeit himzubekommen, dass ich die Reihenfolge der randomisierten Seiten in meinem Fragebogen speicher kann, aber ich bekomme es einfach nicht hin bzw. verstehe ich die Beschreibung nicht so richtig ...
Der Code für die Randomisierung ist:

if (!isset($pages)) {
  $pages = array('e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7','e8');
  shuffle($pages);
  $pages[] = 'filler';
  registerVariable($pages);
}
setPageOrder($pages);

Also ich habe 8 Seiten die in randomisierter Reihenfolge präsentiert werden. Nun möchte ich diese Reihenfolge speichern lassen. Dazu muss man ja eine interne Variable anlegen... Dazu habe ich schon die erste Frage:
Lege ich nur 1 IV an und erstelle in dieser 8 Items, oder benötige ich 8 IV?
Ich habe ersteinmal eine IV angelegt (Kennung IV01) und darin 8 Items (Kennung e1-e8) erstellt.
Ich habe folgenden Code für die Speicherung der Reihenfolge gefunden: (in der anleitung stand $elements, was ich in $pages umgewandelt habe, weil das oben ja auch so verwendet wird, war das richtig?)

for ($i=0; $i<count($pages); $i++) {
  // Kennung der internen Variable aus Frage-Kennung plus Index erstellen
  $id = id('IV01', $i + 1);  
  // Hier den Wert aus dem Array speichern
  put($id, $pages[$i]);
}
question('IV01', 'css-class=false', 'css-style=false');  // IV01

Wo muss ich nun noch etwas ergänzen oder einfügen? Und füge ich die IV als Frage mit auf der Seite ein, wo ich die beiden PHP Codes habe, oder muss ich doch 8 IVs erstellen und dann je eine IV zu der passenden Seite, die randomisiert werden soll, einfügen. Z.B. für e1 darunter IV01einfügen, für e2 darunter IV02 einfügen, etc.?

Falls das nicht verständlich ist, was ich hier geschrieben habe, gerne nachfragen, dann erkläre ich es anders. Vielen Dank schon einmal für die Hilfe!
besten gruß
Benjamin

3 Answers

0 votes
by SoSci Survey (327k points)

Lege ich nur 1 IV an und erstelle in dieser 8 Items, oder benötige ich 8 IV?

Das kommt ein wenig darauf an, was Sie damit machen möchten. Wenn Sie die Reihenfolge nur speichern möchten "für den Fall der Fälle", dann reicht eine Variable, wo Sie per Komma separiert die Seitenabfolge hineinschreiben:

put('IV01_01', implode(', ', $pages);

Das kann man ohne weiteren Aufwand nicht wirklich auswerten, aber man hat die Abfolge im Datensatz.

Wenn Sie dagegen mit der Abfolge arbeiten möchten, dann müssen Sie zunächst entscheiden, ob Sie die Platzierungen der einzelnen Seiten benötigen (Ränge) - oder die Seiten, die auf einem Rangplatz angezeigt wurden.

Also ob aus der Abfolge p2, p3, p1 werden soll...

(Ränge) [p2]=1, [p3]=2, [p1]=3 oder
(Seiten) [1]=2, [2]=3, [3]=1

Sie haben bisher einen Code für die zweite Option verwendet. Nun wäre meine Frage: Was macht der Code denn schon und was funktioniert noch nicht? Editieren Sie gerne die ursprüngliche Frage, um diese Infos zu ergänzen.

by s064504 (195 points)
Ich möchte gerne mit der Abfolge Arbeiten und zwar mit den Platzierungen der Seiten.
Das funktioniert auch mit dem Code, wie ich ihn habe. Also ich habe die 8 Seiten und wenn Seite 4 als erstes präsentiert wird, dann Seite 2 etc. dann zeigt mir meine erste interne Variable IV01_01 den die Kennung für Seite 2 an ...
0 votes
by s064504 (195 points)

Danke für die Antwort, das hat es schon einmal etwas klarer gemacht.

Also an sich funktioniert es, doch ich habe es noch immer nicht ganz verstanden. Ich habe einfach durch Zufall versucht etwas zu machen und es ging. Ich würde es aber gerne ganz verstehen.
Zu mal auf der Seite bevor die Randomisierung beginnt, also da wo der Code steht folgende Fehlermeldung erscheint, wenn man den Fragebogen durchgeht

by SoSci Survey (327k points)
Sie haben in $pages noch die Seite 'filler' - also eine neute Seite, und wenn Sie die Rotation danach speichern, wird diese mit-gespeichert in IV01_09 (nur dass Sie diese Variable halt nicht angelegt haben).
by s064504 (195 points)
Achso, ok. Die Seite "filler" sollte als Stopp dienen, also, dass die Seite davor noch rotiert wird und ab "filler" nicht mehr. Aber wenn ich dann einfach noch IV01_09 erstelle, dann müsste es ja behoben sein.
Danke
by SoSci Survey (327k points)
Der Sinn von "filler" ist unbestritten :)
Ja, korrekt, wenn Sie IV01_09 anlegen oder das count($pages) durch die Zahl 8 ersetzen, tritt das Problem nicht mehr auf.
0 votes
by s064504 (195 points)

Hier noch einmal ausführlicher, was ich gemacht habe:

1) Fragebogen mit insgesamt 17 Seiten und innerhalb dessen sind 8 Seiten die randomisert präsentiert werden mit der Kennung e1, e2, e3, e4, e5, e6, e7, e8
Für die Randomisierung habe ich folgenden Code benutzt:

if (!isset($pages)) {
$pages = array('e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7','e8');
shuffle($pages);
$pages[] = 'filler';
registerVariable($pages);
}
setPageOrder($pages);

Soweit ist alles klar.

2) Nun möchte ich später gerne zurückverfolgen in welcher Reihenfolge jedem Probanden die Seiten präsentiert wurden (also deren Position im Fragebogen) und wie gesagt, das klappt auch nur mit der Fehlermeldung). Ich verstehe auch das Prinzip der internen Variable, aber die Umsetzung ist mir noch nicht ganz klar.

3) ich habe 8 interne Variablen erstellt (siehe Bild)

4) auf der gleichen Seite wo sich der Code für die Randomisierung befindet, habe ich nun den Code zur Speicherung der Platzierung eingefügt, Code:

for ($i=0; $i<count($pages); $i++) {
// Kennung der internen Variable aus Frage-Kennung plus Index erstellen
$id = id('IV01', $i + 1);
// Hier den Wert aus dem Array speichern
put($id, $pages[$i]);
}
question('IV01', 'css-class=false', 'css-style=false'); // IV01

und darunter habe ich auf der gleichen Seite IV01 eingefügt

5) Auf der ersten zu randomisierenden Seite (e1) befindet sich nur die zu präsentierende Frage und auf der zweiten zu randomisierenden Seite (e2) befindet sich die Frage und die interne variable IV01_02. Das geht dann so weiter bis zur Seite e8, wo sich die Frage und interne Variable IV01_08 befinden.

6) Nun ist meine Frage, ob das alles so stimmt und man die internen Variablen so verwendent, oder muss man die garnicht mit auf die entsprechenden Seiten setzen? Und wie bekomme ich die Fehlermeldung weg?

PS: weil ich mir mit der Handhabung der IV unschlüssig war hatte ich für IV01 noch 8 Variablen erstellt, haben die einen Nutzen oder kann ich die wieder löschen?

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

...