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

Hallo,
ich würde gerne verschiedene Seiten rotieren, aber dennoch ein einzelnes Element konstant halten, also zB. würde ich gerne, dass Szenario 1 auf der ersten rotierten Seite steht und Szenario 2 auf der zweiten usw.

Ich würde mich sehr über Hilfe freuen.

Viele Grüße

1 Answer

0 votes
by SoSci Survey (327k points)

Ja, alles möglich - aber für eine konkrete Lösung müssten Sie die Problemstellung bitte ein wenig konretisieren. Für den moment kann ich nur vage auf die Anleitung verweisen, die durchaus auch solche Spezialfälle abarbeitet: Seiten rotieren

In den meisten Fälle läuft es darauf hinaus, dass man eine Liste der Seitenkennungen erstellen (ein Array) und dann nach Bedarf anpasst. Man könnte z.B. eine Liste aller Seiten machen und dann an einer zufällige Position noch eine Seite einfügen.

by s139650 (110 points)
Ok, vielen Dank für die Antwort.

Ich meine damit, dass ein Text also zB. "Szenario 1" und danach "Szenario 2" usw. angezeigt wird, aber die Seiten dennoch rotiert werden. Die Teilnehmer sollen wissen, dass sich das Szenario verändert hat.
Ich verstehe leider noch nicht, wie es mir helfen soll einzelne Seiten einzufügen.

Viele Grüße
by SoSci Survey (327k points)
Nun, die Rotation sollte sich mithilfe der Anleitung ja problemlos umsetzen lassen? Beschreiben Sie bitte, wenn Sie soweit sind, welchen PHP-Code Sie konkret verwendet haben und was in dieser Lösung noch nicht so funktioniert, wie Sie es brauchen.

> Ich verstehe leider noch nicht, wie es mir helfen soll einzelne Seiten einzufügen.

Das bezog sich auf Ihren Wunsch von oben, wo Sie ursprünglich geschrieben hatten, dass Sie eventuell auch nur ein Item durch die Seiten rotieren möchten.
by s139650 (110 points)
question('RF02');  // Zettel in zufälliger Reihenfolge ziehen
$pages = valueList('RF02', NULL, 'label');  // Gezogene Zettel auslesen
setPageOrder($pages, 'posttest');  // Seiten als Seitenabfolge definieren



Ich habe die Seiten bereits rotiert, das funktioniert auch.
Hier ist mein php-code.
Allerdings besteht weiterhin das Problem, dass ich ein einzelnes Element also "Szenario 1", "Szenario 2" usw. nicht rotieren möchte.
by SoSci Survey (327k points)
>  dass ich ein einzelnes Element also "Szenario 1", "Szenario 2" usw.

Sind die Szenarien auf eigenen Seiten? Sind die Kennungen dieser Seiten im Zufallsgenerator?

Und weil Sie schreiben "ein einzelnes Element" und dann aber zwei Szenarien u.s.w. aufzählen: Geht es um ein Element innerhalb eines Interviews oder um mehrere?
by s139650 (110 points)
Achso, entschuldigung war etwas schwierig formuliert.
Ich wollte zusätzlich verschiedene Texte in denen "Szenario 1" und dann noch einen Text mit "Szenario 2" usw. einfügen.  Sodass die Teilnehmer wissen, es handelt sich um Szenario 1, obwohl die Fragebogen Seite rotiert wurde und immer ein anderes Szenario dort steht.
by s139650 (110 points)
Der Text Szenario 1 soll aber auf der Seite 5 konstant stehen bleiben und nicht mit der Fragebogen Seite rotieren.
by SoSci Survey (327k points)
Okay, das ist nicht ganz trivial.

Also, eine Möglichkeit wäre, dass Sie mit loopIndex() arbeiten. Dann würden Sie statt der Nummer einen Platzhalter einfügen, also z.B.

<h1>Szenario %num%</h1>

Und darüber würden Sie auf der Seite als PHP-Code schreiben:

replace('%num%', loopIndex() + 1);

Die Funktion loopIndex() verrät, an welcher Stelle innerhalb einer Seitenabfolge man gerade ist. Ob das +1 stimmt, kommt auf den Kontext an.
by s139650 (110 points)
Alles klar, vielen Dank.

Wenn ich das mache, kommt nur diese Fehlermeldung:

Für den Platzhalter %num% wurde weder ein Eingabefeld mit prepare_input() vorbereitet, noch ein Inhalt mit replace() festgelegt.
by SoSci Survey (327k points)
Haben Sie den replace()-Befehl (a) in ein Element"PHP-Code" geschrieben und (b) dieses PHP-Code-Element oberhalb des HTML-Codes oder der Frge platziert, in welcher das %num% verwendet wird?
by s139650 (110 points)
Der replace Befehl funktioniert jetzt. Allerdings nur, wenn ich auf der selben Seite auf testen der Seite drücke. Wenn ich von Beginn den Fragebogen anschaue und dann der Zufallsgenerator, bei dem die unterschiedlichen Seiten rotiert werden erfolgt, werden die Zahlen auf einmal wild durcheinander angezeigt (also zB. 13, 10, 7),

Soll ich den Befehl am Anfang auf die Seite des Zufallsgenerators zur Rotation der Seiten einfügen, oder wie kann ich das beheben?

Vielen Dank für die Hilfe
by SoSci Survey (327k points)
Den replace()-Befehl müssten Sie auf jede Seite einfügen, die rotiert wird. Jeweils über der Frage oder dem HTML-Element, welches die Nummer anzeigt. Also z.B., wenn Sie es zusammen in den PHP-Code packen wollten:

replace('%num%', loopIndex() + 1);
html('<h1>Szenario %num%</h1>');
by s139650 (110 points)
Leider werden die Zahlen immer durcheinander angezeigt. Also Szenario 3 kommt, wenn Szenario 1 kommen sollte.
by SoSci Survey (327k points)
Könnten Sie wohl bitte noch folgende Zeile ergänzen...

debug(loopIndex());

und dann die Debug-Information (rechts oben) posten, die beim Aufruf der Seite angezeigt wird, und jene, die nach dem Klick auf "Weiter" angezeigt wird?
by s139650 (110 points)
Alles klar, habe ich gemacht.

Die Debug Information auf der ersten Seite ist:

Debug-Information für loopIndex():
loopIndex() = false (boolean)


auf der nächsten Seite:

Debug-Information für loopIndex():
loopIndex() = 0 (integer)

auf der nächsten Seite:

Debug-Information für loopIndex():
loopIndex() = 1 (integer)

usw. also 1,2,3,4,5 folgt danach als loopindex
by SoSci Survey (327k points)
Das sieht eigentlich genau so aus, wie es aussehen sollte.

Und wenn man +1 addiert, kommen genau die Zahlen, die Sie haben möchten, heraus.

Also scheint da irgendwas mit dem Platzhalter schief zu laufen. Wobei der Code

replace('%num%', loopIndex() + 1);
html('<h1>Szenario %num%</h1>');

eigentlich gar nichts falsch machen kann. Vielleicht möchten Sie trotzdem mal diesen hier probieren ohne Platzhalter:

html('<h1>Szenario '.(loopIndex() + 1).'</h1>');
by s139650 (110 points)
Vielen Dank für die Hilfe, es hat 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

...