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 einem Fragebogen pro Seite jeweils 2 (zusammenhängende) Fragen anzeigen. Da ich jedoch über 300 Fragen habe, wäre es sehr umständlich dafür einzeln 150 Seiten zu erstellen und dann mittels PHP-Code einzufügen.

Gibt es eine Funktion, mit der ich alle Fragen in einem PHP-Code sammeln und über verschiedene Seiten verteilen kann? Also ähnlich wie bei der Rotation über mehrere Seiten, einfach ohne rotieren?

in SoSci Survey (dt.) by s075705 (170 points)

2 Answers

0 votes

Hallo,

zunächst benötigen Sie eine Liste aller Frage-Kennungen - diese können Sie z.B. mittels getQuestions() erstellen - ggf. unter Zuhilfenahme von array_merge(), wenn sich die Fragen auf mehrere Rubriken verteilen (was bei >99 Fragen zwigend der Fall ist).

Mit dem Befehl loopPage() können Sie dann eine Seite beliebig oft wiederholen und z.B. immer zwei der Fragen anzeigen. Verwenden Sie ggf. noch array_chunk(), um die zweier-Grüppchen einfacher zuerstellen und auch mit einer ungeraden Anzahl von Fragen umzugehen.

// Liste der Fragen erstellen
$questions = array_merge(
  getQuestions('AB01'),
  getQuestions('AB02')
);

// In 2er-Grüppchen teilen
$sets = array_chunk($questions, 2);

// Die Seite für jedes Set wiederholen
$i = loopPage(count($sets));
$qNames = $sets[$i];
foreach ($qnames as $qID) {
  question($qID);
}

Hier noch eine Variante mit Attributen für die beiden Fragen:

// Liste der Fragen erstellen
$questions = array_merge(
  getQuestions('AB01'),
  getQuestions('AB02')
);

// In 2er-Grüppchen teilen
$sets = array_chunk($questions, 2);

// Die Seite für jedes Set wiederholen
$i = loopPage(count($sets));
question($sets[$i][0], 'number=no', 'spacing=4');
question($sets[$i][1], 'number=no', 'show-title=no', 'show-explanation=no', 'spacing=4');
by SoSci Survey (89.3k points)
edited by SoSci Survey
0 votes

Vielen Dank für die schnelle Antwort, dies hilft mir bereits weiter! Leider habe ich immer noch einige Unklarheiten:

  1. Die Reihenfolge der Fragen muss beibehalten werden, also keine Rotation. Auch müssen zuerst alle Fragen aus Rubrik1, dann aus Rubrik 2, Rubrik 3 etc. kommen, da diese thematisch sortiert sind. Im Moment ist die Reihenfolge aber zufällig und die Fragen der verschiedenen Rubriken gemischt.

  2. Gibt es eine Möglichkeit, den Abstand zwischen den zweier Grüppchen zu manipulieren, sowie den Titel der zweiten Frage auszuschalten? Beziehungsweise wo genau muss ich das in den obigen PHP-Code einbauen?
    Beim manuellen Zusammenstellen auf einer Seite habe ich jeweils folgenden Code benützt:

question('HI04', 'number=no', 'spacing=4');
question('HI05', 'number=no', 'show-title=no', 'show-explanation=no', 'spacing=4');

by s075705 (170 points)
Hallo, der obige PHP-Code rotiert nichts? Könnten Sie evtl. ein wenig Debug-Information ergänzen? Was die Abstände und Darstellung angeht, habe ich oben eine Variante ergänzt.
...