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

Hallo ,

Ich versuche in einem Fragebogen 24 Seiten immer wieder randomisiert beim Abrufen des Fragebogens darzustellen. Es sollen immer alle 24 Seiten einmal dargestellt werden aber eben immer in einer anderen zufälligen Reihenfolge (jede seite hat eine Frage). Ich arbeite auf einem Uni Server: soSci-rlp. (daher konnte ich mich nicht mir den Daten von dem eigentlichen Projekt hier anmelden)

Ich habe eine Seitenfolge Variable erstellt, welche ich vor den PHP Code eingesetzt habe und FR42_01 heißt. dann habe ich alle zu randomisierenden Seiten die Kennung Seite01 bis Seite24 gegeben.
Das ist der PHP Code vor den zu randomisierenden Seiten eigefügt.

if (value('FR42_01') == '') {

$seiten = [ 'Seite01', 'Seite02', 'Seite03', 'Seite04', 'Seite05',
    'Seite06', 'Seite07', 'Seite08', 'Seite09', 'Seite10',
    'Seite11', 'Seite12', 'Seite13', 'Seite14', 'Seite15',
    'Seite16', 'Seite17', 'Seite18', 'Seite19', 'Seite20',
    'Seite21', 'Seite22', 'Seite23', 'Seite24'
    
];

shuffle($seiten);
put('FR42_01', implode(',', $seiten));      // Speichert die Reihenfolge
setPageOrder($seiten);                      // Steuert die Abfolge

}

Dann habe ich auf jeder zu randomisierenden Seite das hier, immer passend zur Seite, eingesetzt:

$page = 'Seite01'; // {clockwise_rightwards_and_leftwards_open_circle_arrows} Anpassen an die Kennung dieser Seite!

$seitenfolge = explode(',', value('FR42_01'));
$i = loopPage(count($seitenfolge));
$aktuelleSeite = $seitenfolge[$i];

if ($aktuelleSeite != $page) {

goToPage($aktuelleSeite);

}

Jetzt gibt er mir einerseits diese Warnung:

Die Variable FR42_01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt. Daher kann die Funktion value() keinen Antwort-Wert ermitteln.

und diesen Fehler immer für eine andere Seite:

Dieses Interview versuchte, auf Seite Nr. 26 (Kennung Seite24) zu springen, die bei der Ausgabe der aktuellen Darstellung bereits verarbeitet wurde. Bitte überprüfen Sie, ob goToPage() eine Schleife erzeugt.

Ich komme leider nicht weiter. Ich hatte bereits auch geschafft, das er Seiten randomisiert, jedoch hatte er mir dann ein paar der seiten doppelt angezeigt, welche bereits ausgefüllt waren.

Ich bin um jede Hilfe dankbar.
Lieb Grüße

1 Answer

0 votes
ago by SoSci Survey (351k points)

Meine Empfehlung wäre, dass Sie nicht mit einem Array und shuffle() arbeiten, sondern mit einem Zufallsgenerator, vgl. Seiten rotieren im Abschnitt "Einzelne Seiten rotieren". Dann ersparen Sie sich einige fehleranfällige Schritte.

Außerdem fehlt im setPageOrder() noch die Angabe, wo es nach der letzten rotierten Seite weitergehen soll.

Die Variable FR42_01 wurde im Laufe dieses Interviews auf keiner vorhergehenden Seite abgefragt.

Das bezieht sich auf die Zeile

if (value('FR42_01') == '') {

denn in der Variable steht ja wirklich noch nichts. Wenn Sie mit dem Zufallsgenerator arbeiten, fällt das alles weg :)

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

...