0 votes
in SoSci Survey (dt.) by s102840 (130 points)
edited by SoSci Survey

Guten Tag,
mit diesem Code habe ich die Reihenfolge meiner im Fragebogen angezeigten Seiten rotiert und eine "Zählvariable" angelegt:

$parts = array(
  'Sc1R' => 'Sc1 Bericht-Wipe1',
  'Sc2R' => 'Sc2 Datenbank-Wipe2',
  'Sc3R' => 'Sc3 Trainingsprogramm-Wipe3',
);
// Die Schlüssel des obigen Arrays mischen
$keys = array_keys($parts);
shuffle($keys);
// Das Array sieht nun z.B. so aus: R2, R5, R3, R1, R4
 
// Für jeden Schlüssel die Position im gemischten Array abspeichern
put('IV04_01', array_search('Sc1R', $keys) + 1);
put('IV04_02', array_search('Sc2R', $keys) + 1);
put('IV04_03', array_search('Sc3R', $keys) + 1);
 
// Jetzt noch die Seitenabfolge definieren
setPageOrder(
  $parts[$keys[0]],  // $keys[0] ist z.B. 'R2' und $parts['R2'] ist 'R2start-R2ende'
  $parts[$keys[1]],
  $parts[$keys[2]],  
  'Danke'
);

    // Variable für Aufgabennummerierung
registerVariable ('i')
;

Die "Aufgabenseite" dieser rotierten Blöcke beginnt jeweils mit einem Textbaustein, über dem ich gerne den Text "Aufgabe X von X" stehen hätte, mit fortlaufender Nummerierung.
Ich konnte dies auch durch folgenden Code (jeweils auf der Seite auf der die Überschrift erscheinen soll) erreichen:

//Aufgabennummer fortlaufend nummerieren
replace('%Aufgabennummer%', $i + 1)
;
$i = $i + 1
;

html ('
<h1>Aufgabe %Aufgabennummer% von 3:</h1>
');

**Allerdings wird nun auch weitergezählt, wenn die Seite durch den Versuchsteilnehmer aktualisiert werden sollte, so dass auch Darstellungen wie "Aufgabe 4 von 3" enstehen.
Was müsste ich tun, um das weiterzählen bei Aktualisierung zu unterbinden, ähnlich wie bei dem isset () Befehl? Ein erneute Registrierung durch Anhängen von registerVariable () führte zu keinem Ergebnis.

Vielen Dank im Voraus für Ihre Hilfe**

by SoSci Survey (327k points)
Tipp: Mit dem Knopf {} wird der Code so eingerückt, dass er im Posting als Code erscheint.

1 Answer

+1 vote
by SoSci Survey (327k points)
selected by s102840
 
Best answer

Allerdings wird nun auch weitergezählt, wenn die Seite durch den Versuchsteilnehmer aktualisiert werden sollte, so dass auch Darstellungen wie "Aufgabe 4 von 3" enstehen.

Mit der Funktion getRoute() können Sie das Zählen auf die Situationen beschränken, wenn der Teilnehmer tatsächlich zur neuen Seite gewechselt ist:

if (getRoute() == 'next') {
  $i = $i + 1;
}
by s102840 (130 points)
Perfekt! Genau das, was ich gesucht habe. Vielen Dank für die unglaublich schnelle Hilfe.

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

...