0 votes
in SoSci Survey (dt.) by s128054 (165 points)

Hallo,

ich suche mich gerade dusselig und dämlich, weil meine Frage bestimmt schon mal jemanden beschäftigt haben muss, aber finde leider keine zufriedenstellende Antwort...

Bei der systematischen Rotation von Blöcken möchte ich gerne die entsprechenden Blöcke entsprechend ihrer individuellen Reihenfolge innerhalb der unterschiedlichen Varianten fortlaufend nummerieren.

Die Verwendung eines Platzhalters habe ich ebenfalls schon ausprobiert, aber schaffe höchstens die fortlaufende Durchnummerierung einzelner Seiten, aber keiner ganzen Blöcke.

Vielen Dank für eine Antwort auf meine wahrscheinlich nicht ganz so qualifizierte Frage!

by SoSci Survey (306k points)
Die Frage ist durchaus qualifiziert. Wenn Sie noch Ihren PHP-Code ergänzen würden, dann würde ich mich im Gegenzug an einer qualifizierten Antwort versuchen.
by s128054 (165 points)
Sehr gerne!

Hier ist der PHP-Code den ich verwende, der aber scheinbar nur für die dynamische fortlaufende Nummerierung von Seiten funktioniert und nicht von Blöcken:

replace('%Aufgabennummer%', 'qn+', 'special');
html('<div class="title">%Aufgabennummer%. Dies ist der Titel des Aufgabenblocks, der über mehrere Seiten verläuft </div>');

Vielen Dank im Voraus für Ihre Hilfe!
by SoSci Survey (306k points)
Das "qn+" sollte eine (zusätzliche) Nummer in die laufenden Nummern der Fragen einfügen und ggf. anzeigen: https://www.soscisurvey.de/help/doku.php/de:create:functions:replace

Wie sieht denn der PHP-Code aus, den Sie für die Rotation der Blöcke verwenden? Ich gehe davon aus, dass Sie dort eine Zählvariable haben, die sich für Ihren Zweck nutzen lässt.
by s128054 (165 points)
Die Rotation der Blöcke habe ich mittels des Zufallsgenerators eingerichtet.
Hier der zugehörige PHP-Code:
$order = value('RM02', 'label');
setPageOrder($order, 'AV00');


Vielen Dank für Ihre Hilfe!

1 Answer

0 votes
by SoSci Survey (306k points)

Die Rotation der Blöcke habe ich mittels des Zufallsgenerators eingerichtet.

In Ordnung, dann ist das mit der Nummerierung tatsächlich nicht so trivial. Aber auch das ist lösbar :)

Ich nehme der Einfachheit halber an, dass Sie keinen Zurück-Knopf im Fragebogen erlauben. Dann könnten Sie die Nummerierung wie folgt vorbereiten:

$blockNum = 0;
registerVariable($blockNum);

Wo immer nun eine Nummer auftauchen soll, schreiben Sie:

if (getRoute() == 'next') {
  $blockNum++;
}
replace('%nummer%', $blockNum);
by s128054 (165 points)
Ok, danke!
Ich habe es nun genauso gemacht wie zuletzt von Ihnen beschrieben und nun bekomme ich wieder die beiden Fehlermeldungen wie ganz zu Beginn:

Fehler im Fragebogen (Seite 12)
Für die Funktion replace() wurden nicht ausreichend Argumente angegeben, 2 Argumente sind zwingend erforderlich. Weitere Details finden Sie in der Anleitung zur Funktion.

Fehler im Fragebogen (Seite 12)
Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Die PHP-Variable $blocknum wurde verwendet, in diesem PHP-Code aber noch nicht definiert (sie enthält noch keinen Wert).

PHP-Code

002
003
004 if (getRoute() == 'next') {
005   $blockNum = $blocknum++;
006 }
007
008 replace('%nummer%', $blockNum++);
by SoSci Survey (306k points)
Die Fehlermeldung kommt, obwohl (!) Sie die Seite mit registerVariable() vorher aufgerufen haben und dann erst auf "Weiter" geklickt haben?

Ich habe oben im Code (voriger Kommentar) noch zwei Korrekturen vorgenommen, weil das ein paar Kleinigkeiten nicht stimmten, z.B. das  $blockNum = $blocknum++;
by s128054 (165 points)
edited by s128054
Perfekt, vielen Dank für Ihre geduldige Unterstützung!
Mit Ihren Änderungen klappt es nun perfekt, auch wenn ich den kompletten Fragebogen durchteste! :)
Vielen, vielen Dank!

Gäbe es noch die Möglichkeit zu speichern, wie die Ergebnisse bei welcher Blockreihenfolge aussehen?
Oder ist das zu kompliziert?

Vielen Dank nochmals!
by SoSci Survey (306k points)
Sie meinen, dass die Abfolge im Datensatz abgespeichert wird? Diese haben Sie doch ohnehin in der Variable Ihres Zufallsgenerators...
by s128054 (165 points)
Prima, ich schaue mir das nochmal an!

Vielen Dank nochmals für die Unterstützung!

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

...