0 votes
in SoSci Survey (dt.) by s193934 (110 points)

Hi,

ich habe in meinem Fragebogen 2 Blöcke, die ich gerne jeweils randomisieren würde.

Bei dem ersten Block hat auch alles super funktioniert. Habe folgenden PHP Code verwendet:
if (!isset($seiten)) {
$seiten = array('NE01', 'NE02', 'NE03', 'NE04', 'NE05', 'NE06');
shuffle($seiten);
$seiten[] = 'END';
registerVariable($seiten);
}
setPageOrder($seiten);

Bei dem 2. Block entsteht mit diesem (natürlich dann angepassten) PHP Code jedes mal ein Bug, dass meine Antworten vor ausgefüllt sind (was ich natürlich nicht will).
Also habe ich es mit Zufallsgenerator und PHP Code probiert:
$fragen = valueList('PK13', NULL, 'label');

$kennung = loopPage($fragen);
question($kennung);

(PK13 = Zufallsgenerator) -> Hier fragt er erst randomisiert meine 12 Fragen ab und fängt dann wahllos wieder an, obwohl ich ohne zurücklegen eingestellt habe.

Kennt sich jemand aus und kann mir bitte, bitte weiterhelfen? Ich sitze seit Tagen daran und nichts funktioniert.

Tausend Dank im Voraus!!

1 Answer

0 votes
by SoSci Survey (304k points)

Die Funktionen setPageOrder() und loopPage() können nicht gemischt werden. Die eine setzt jeweils die andere außer Kraft. Wenn der zweite Block also innerhalb des ersten Blocks ist, wird es nicht funktionieren.

Wenn der zweite Block nicht auf den Seite NE01 bis NE06 ist, sondern danach kommt, dann liegt es vielleicht einfach nur daran, dass beim

setPageOrder($seiten);

noch die Angabe fehlt, so es nach der letzte Seite denn weitergehen soll, z.B.

setPageOrder($seiten, 'NE07');
by s193934 (110 points)
Hi, erstmal danke für die Antwort.

Ich habe mich vermutlich nicht sehr sinnvoll ausgedrückt, aber ich habe die beiden nicht gemischt. Ich habe einen Blog mit "NE" (1-6), dann kommen Zwischenseiten und danach ein weiterer Blog mit "PK" (1-12) und ich möchte nicht, dass alles gemischt wird, sondern innerhalb des ersten Blogs soll randomisiert werden und innerhalb des zweiten auch.

Ich habe jeweils schon die Funktion pageorder und loopPage verwendet und vor jeden der beiden Blogs (gleichermaßen) gesetzt plus die Kennzeichnung für die letzte Seite verwendet.

Mein Problem ist: die Funktion an sich funktioniert, er randomisiert auch, aber es entsteht immer im letzten Blog 2 Bugs:
1. nicht 12 seiten werden randomisiert, sondern fast doppelt so viele
2. die Antworten sind auf einmal vorausgefüllt, was natürlich nicht sein dürfte.

-> Ich verwende exakt die gleichen Funktionen und im 2. Blog entstehen Probleme. Kannst du mir dabei bitte auch irgendwie helfen?
Tausend Dank!!
by SoSci Survey (304k points)
>  es entsteht immer im letzten Blog 2 Bugs

Der zweite Block verwendet *nur* loopPage(), kein setPageOrder()? Oder doch beides? Bitte posten Sie mal alle Reihenfolge-relevanten PHP-Codes aus dem zweiten Block im Original.

> die Antworten sind auf einmal vorausgefüllt, was natürlich nicht sein dürfte.

Das spicht dafür, dass die Seiten oder Fragen nochmal angezeigt werden, die schon angezeigt wurden. Der Klassiker dafür ist, dass man in setPageOrder() die Angabe vergisst, wo es nach der Abfolge weitergehen soll.

>  Ich verwende exakt die gleichen Funktionen und im 2. Blog entstehen Probleme.

Okay, dann prüfen Sie bitte, ob Sie beidesmal die Variable $seiten verwenden. Wenn Sie diese im ersten Block definieren, dann ist sie im zweiten Block bereits definiert - isset($seiten) liefert also "true".

Dann wäre die Lösung, dass Sie den Namen der Variable im zweiten Block auf $seiten2 (oder etwas anderes) ändern.
by s193934 (110 points)
Danke für die schnelle Antwort!

Ich habe die Kennung im 2. Block jetzt zu "$seiten2" geändert und es funktioniert. Ich mache noch ein paar Sicherheitsdurchläufe, aber es entstehen keine Bugs mehr.

Tausend Dank wirklich für die schnelle und gute Hilfe, das ist nicht selbstverständlich, dass dieser Service kostenlos so angeboten wird und so funktioniert. :)

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

...