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

Lieber Dominik,

In einem Vignetten-Experiment werden jedem Teilnehmer nacheinander 8 Vignetten in randomisierter Reihenfolge angezeigt. Um die Teilnehmermotivation beim Beantworten der Fragen zu den 8 Vignetten zu steigern, würden wir gerne eine Art Fortschrittszähler zu den Vignetten anzeigen (bspw. "Szenario 3 von 8", "Szenario 4 von 8" etc.). Da die Vignetten aber in randomisierter Reihenfolge im Fragebogen angezeigt werden, ist es uns bisher nicht gelungen, den Fortschrittszähler per php Code einzubinden.

Welche php-Codes benötigen wir, um solch einen Fortschrittszähler zu basteln?

Tausend Dank vorab und beste Grüße
Adrian (Meier)

in SoSci Survey (dt.) by s038024 (110 points)

1 Answer

0 votes

Hallo! Ich vermute, du hast für die rotierte Reihenfolge mit loopPage() oder loopToPage() gearbeitet? Dann kann man die Zählervariable einfach in einen Platzhalter schreiben...

$i = loopToPage('xyz');
replace('%num%', $i + 1);
by SoSci Survey (72.9k points)
Leider nein. Wir randomisieren die Reihenfolge, in der die Seiten angezeigt werden, folgendermaßen:

if (!isset($blocks)) {
  // Liste der Seiten definieren
  $blocks = array('V1','V2','V3','V4','V5','V6','V7','V8');
  // Liste mischen
  shuffle($blocks);
  // Die Seite ergänzen, wo es nachher weiter geht
  $blocks[] = 'NG';
  // Reihenfolge zwischenspeichern, um spätere Änderung zu vermeiden
  registerVariable($blocks);
}
setPageOrder($blocks);

Lässt sich aus diesem Befehl ebenfalls ein Zähler konstruieren?

Danke vorab!
Wir haben eine kleine Modifikation an setPageOrder() vorgenommen, sodass Sie mittels loopIndex() nun die Position innerhalb der Seitenabfolge bekommen.

$i = loopIndex();
replace('%num%', $i + 1);
Vielen Dank!

Wenn ich den Befehl versuche einzubinden, wird mir allerdings folgende Fehlermeldung angezeigt: "Die Funktion loopIndex() funktioniert nur, wenn Sie zusammen mit loopToPage() verwendet wird."

Muss ich die Randomisierung der Seitenreihenfolge also doch mit loopToPage wie ganz oben beschrieben vornehmen? Oder muss der Befehl

$i = loopIndex();
replace('%num%', $i + 1);

innerhalb des Befehls setPageOrder() an einer bestimmten Stelle eingebunden werden? Wenn Letzteres, muss ich dann abschließend nur noch einen Platzhalter und entsprechenden Text ("Szenario $i von 8") auf den Vignetten-Seiten einfügen?
Wenn Sie auf www.soscisurvey.de arbeiten UND wenn im Interview vorher setPageOrder() verwendet wurde, dann sollte loopIndex() diese Fehlermeldung nicht zeigen. Wenn Sie also das Interview mit der o.g. Seite starten und dann auf der Seite V1 das loopIndex() verwenden, sollte es funktionieren.
Danke, jetzt funktioniert's! Der Hinweis, dass loopIndex() nach dem Befehl setPageOrder() verwendet werden muss (und nicht gleichzeitig), war entscheidend :)
...