0 votes
in SoSci Survey (dt.) by s082729 (125 points)
edited by s082729

Hallo!

Ich habe verschiedene Texte, die nach dem Lesen bewertet werden sollen. Ich möchte aber, dass die Texte mit zugehöriger Frage auf der Seite zufällig gemischt werden.
Ich habe hoffentlich den passenden Befehl dazu im Benutzerhandbuch gefunden.

Ich schreibe also:

if (!isset($blocks)) {
  $blocks = array( 
    array('PS01', 'PS16'),
    array('PS02', 'PS19'),
    array('PS03', 'PS20'),
  );
 
  shuffle($blocks);
  registerVariable('blocks');
}

Jedoch weiß ich nicht, was ich dann weiter in dem Befehl einsetzen muss, im Benutzerhandbuch steht:

// Anzeige der Blöcke
$i = loopPage(count($blocks));
// Bild anzeigen
html...
// Frage anzeigen
question($blocks[$i][0]);

Kann mir da jemand helfen? Anstelle der Bildanzeige müsste ja jetzt mein Text (z.B. PS01) kommen, wie gebe ich den an? Und was bedeutet [$i][1] oder [$i][0]?

1 Answer

0 votes
by SoSci Survey (327k points)
selected by s082729
 
Best answer

wie gebe ich den an?

das html können Sie weglassen, schreiben Sie einfach:

question($blocks[$i][0]);
question($blocks[$i][1]);

Ja ... der Text ist eigentlich keine Frage und wenn das question() Sie irritiert, können Sie auch show() verwenden. Aber wenn Sie den Text im Fragenkatalog angelegt haben, klappt es auch mit question().

Und was bedeutet [$i][1] oder [$i][0]?

Das $i ist eine Variable, die von loopPage() gesetzt wird. Und zwar wird sie 0 im ersten Durchlauf, 1 im zweiten Durchlauf u.s.w. Die eckige Klammer sagt nun: "Nimm den $i-ten Eintrag des Arrays $blocks". Und daraus dann einmal den ersten und einmal den zweiten Eintrag - also Text-Kennung und Frage-Kennung.

Mehr dazu s. auch Einführung in Arrays

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

...