0 votes
in SoSci Survey (dt.) by s151448 (145 points)
edited by SoSci Survey

Wir haben in einen längeren Fragebogen angelegt, in dem die Items aus mehreren Tabellen (Fragen-Typ "Skala-Zwischenwerte beschriftet) nacheinander präsentiert werden.
Im Fragebogen haben wir die Präsentation einer jeden Tabelle mittels php code so angelegt, dass immer ein Item auf einer einzelnen Seite präsentiert wird:

hier der php code:

if (!isset($items)) {
  $items = getItems('VA04', 'all');
  $items = array_chunk($items, 1);
  registerVariable($items);
}
 
$i = loopPage(count($items));
question('VA04', $items[$i],'combine=AR04'); 

Fragebogenseite 1 enthält den Code für 99 Items aus der Frage VA04, Fragebogenseite 2 enthält den Code für die 99 Items aus Frage VA05 und Fragebogenseite 3 enthält den Code für die Items aus der Frage VA06, danach geht auf Fragebogenseite 4 mit anderen Inhalten weiter.

Beim Testen ist jetzt folgender Fehler aufgetreten: es wurden alle Items der Fragen VA04, VA05 und VA06 korrekt immer ein Item pro Seite dargestellt. Aber nach dem letzten Item der Frage VA06 (hier enthält die Tabelle nur 3 Items und nicht mehr 99 wie auf den Seiten zuvor) wurde noch ca. 20 leere Seiten gezeigt, die nur den Weiter-Button enthalten haben. Erst nachdem man sich durch die ca. 20 Seiten geklickt hat, kam man auf die im Fragebogen programmierte nächste Seite 4. Das Problem scheint nicht darin zu bestehen, dass der Klick auf den Weiter-Button nicht erkannt wurde, denn mit jeder weiteren leeren Seite veränderte sich der Fortschrittsbalken... Meine einzige Erklärung im Moment ist, dass der php-Code für jede Fragebogenseite (egal ob für VA04, VA05 oder VA06) immer die Variable $items verwendet. Kann es sein, dass es dadurch zu Interferenzen zwischen den Fragebogenseiten kommt? Oder gibt es eine andere Ursache?

1 Answer

0 votes
by SoSci Survey (304k points)
selected by s151448
 
Best answer

(hier enthält die Tabelle nur 3 Items und nicht mehr 99 wie auf den Seiten zuvor)

Das dürfte der Knackpunkt sein. Haben Sie für alle Seiten denselben PHP-Code verwendet? Dann wird durch das registerVariable() auch überall dieselbe Variable $items verwendet. Das heißt ... auf Seite 2, 3, ... ist diese Variable schon definiert, deshalb wird der obere Teil des PHP-Codes (das im IF) nicht mehr ausgeführt.

Sie brauchen hier eigentlich gar kein array_chunk() und registerVariable(), deshalb schlage ich einfach eine Vereinfachung des Codes vor:

$items = getItems('VA04', 'all');
$item = loopPage($items);
question('VA04', $item, 'combine=AR04');

Alternativ können Sie die Variable $items einfach auf jeder Seite anders benennen, also z.B: $items1 auf Seite 1, $items2 auf Seite 2 und so weiter.

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

...