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

0 votes

Ich möchte in meinem Fragebogen lediglich Fragen innerhalb einer Seite rotieren.
Die Seiten habe ich bereits rotieren lassen das hat einwandfrei funktioniert beim rotieren der Fragen taucht allerdings jeweils für alle 3 Fragen der Seite folgende Fehlermeldung auf:

Fehler im Fragebogen (Seite 3)
Items in der nachfolgenden Fragen werden auf dieser Seite schon weiter oben angezeigt. Dies führt fast zwangsläufig zu Datenverlust! Falls Sie eine Frage mehrfach benötigen, legen Sie bitte eine Kopie der Frage an. Betroffen sind folgende Items: ZA02_01, ZA02_02.

Zudem kommen die Fragen auf der preview Seite doppelt vor (ich brauche sie nur einmal)

Mein PHP- Code:
if (!isset($fragen)) {
$fragen = array( // Liste der Frage-Kennungen

'ZA17',
'ZA02',
'ZA03',

);
// Die Liste zufällig mischen
shuffle($fragen);
// Die Rotation für eine eventuelle Wiederholung der Seite zwischenspeichern
registerVariable($fragen);
}
// Die Liste der Fragen Kennung für Kennung durchgehen
// und jeweils die entsprechende Frage anzeigen
foreach ($fragen as $kennung) {
question($kennung);
}

Was mache ich falsch?

in SoSci Survey (dt.) by s118026 (110 points)

1 Answer

0 votes

Mache ich zufälligerweise auch gerade, und mit dem folgenden Code hat es geklappt:

<?php

// Sicherstellen, dass beim Neu-Laden der Seite nicht neu gezogen wird
if (!isset($fragen)) {
  // Liste der relevanten Fragen
  $fragen = array(
    'AB01', 'AB02', 'AB03', 'AB04', 'AB05',
    'BB01', 'BB02', 'BB03', 'CC01', 'CC02'
  );
  // Die Liste mischen
  shuffle($fragen);
  // Und die Variable für eine erneute Anzeige der Seite speichern
  registerVariable('fragen');
}
// Die Frage anzeigen, die nach dem Mischen an erste Stelle steht
question($fragen[0]);
// Und die Fragen an zweiter und dritter Stelle
question($fragen[1]);
question($fragen[2]);

?>

Wobei ich nur drei Fragen anzeigen lassen möchte. Sie können dann für alle Fragen in Ihrem Array question($fragen[X]); schreiben.

Sie dürfen dann natürlich nicht gleichzeitig die Frage auf die Seite ziehen, da die Frage schon durch den "question" Befehl aufgerufen wird. Ggf. ist das auch ihr Fehler?

Viele Grüße

by s109993 (1.7k points)
Vielen Dank für die Antwort, das funktioniert tatsächlich!
Wenn ich das allerdings auf den nachfolgenden Seiten anwende, dann habe ich wieder dasselbe Problem.
Hinweis (Seite 4)
Eine oder mehrere Variablen (ZA17_01, ZA17_02) wurden bereits auf Seite 3 abgefragt. Bitte beachten Sie, dass die Antworten von Seite 3 hier angezeigt und anschließend überschrieben werden. Falls Sie eine gleichartige Frage mehrfach benötigen, erstellen Sie eine Kopie der Frage.
Wie oben erwähnt: wenn sie die Seiten auf dem Fragebogen zusammenstellen, darf pro Seite(wo die Fragen erscheinen soll)  nur der Code question($fragen[1]); stehen und nicht noch zusätzlich zu dem Code die Frage auf die Seite gezogen werden.Ich meinte ich hatte den Fehler anfangs auch gemacht und dadurch eine solche Fehlermeldung erzeugt.
--> Falls sie das sowieso nicht machen weiß ich auf die schnelle auch nicht weiter. Dann müssten Sie nochmal auf den Admin warte :)
Also auf ihren Hinweis habe ich die Fragen von den Seiten genommen und es hat funktioniert. Aber wie gesagt nur für die erste Seite, für die nachfolgenden Seiten kommt trotzdem die Fehlermeldung. Dennoch vielen Dank :)
Sie können hier nochmal ihren aktuellen Code und vielleicht einen Link zum Pretest posten, dann kann ich nochmal drüber schauen (falls das Problem noch besteht).

Viele Grüße
...