0 votes
in SoSci Survey (dt.) by s117388 (120 points)
edited by SoSci Survey

Wir haben über den Folgenden Code....

if (!isset($blocks)) {
  $blocks = array(  // Liste der Frage-Kennungen und zugehöriger Bilder
    array('D002', 'Bild1.png'),
    array('D004', 'Bild2.png')
    );
 
  // Die Liste mischen
  shuffle($blocks);
  // Die Listen auf allen Seiten verfügbar machen
  registerVariable($blocks);
}
 
// Anzeige der Blöcke
$i = loopPage(count($blocks));
html('<p><img src="'.$blocks[$i][1].'" alt="Dilemma"></p>');
// Frage anzeigen
question($blocks[$i][0]);

... Bilder zu den passenden Fragen zugeordnet und randomisiert. Dadurch erscheinen allerdings Bild und Frage auf einer Seite - wir benötigen aber zunächst die Anzeige des Bildes und dann die Anzeige der Frage erst auf einer zweiten, separaten Seite.
Wir würden uns sehr über einen Tipp zu einem passenden php-Code freuen, da wir noch Blutige Anfänger sind;)

Wir sind dankbar über jede Hilfe! Liebe Grüße, Nina und Sonja

1 Answer

0 votes
by SoSci Survey (328k points)

Zunächst einmal legen Sie eine zweite Seite an, und geben dieser eine Seitenkennung.

Dann ersetzen Sie das loopPage() durch ein loopToPage(). Was in den Klammern steht, entnehmen Sie bitte der Anleitung zu dem Befehl.

Und zuletzt verwenden Sie auf der zweiten Seite folgenden PHP-Code:

$i = loopIndex();
question($blocks[$i][0]);

Klar, dass das question() auf Seite 1 weichen muss :)

by s117388 (120 points)
Vielen Dank, hat super geklappt!

Allerdings haben wir nun ein weiteres Problem:
Bei der Datenansicht wird uns die Verweildauer insgesamt für alle Wiederholungen angezeigt. Hier bräuchten wir aber die Verweildauer pro Wiederholung.
Gibt es dafür auch eine Lösung?

Vielen Dank im Voraus und liebe Grüße,
Sonja & Nina :)
by SoSci Survey (328k points)
Nicht (ohne weiteres) mit der loopToPage() Lösung. Aber von der Anforderung, dass Sie die Zeiten brauchen, hatten Sie bisher ja auch noch nichts geschrieben :)

Wenn Sie beim loopToPage() bleiben möchten (empfohlen), dann müssten Sie ein paar interen Variablen anlegen (eine pro Messwert, den Sie haben möchten) und dann mittels time(), registerVariable() und einer Differenzmessung die Zeiten erheben, z.B.

// Auf der Seite vor dem loopToPage()

$curTime = time();
registerVarable($curTime);

// Auf der loopToPage()-Seite
if (getRoute() == 'next') {
  $nowTime = time();
  $dt = $nowTime - $curTime;
  put(id('IV01', $i + 1), $dt);  // $i stammt aus dem $i = loopIndex()
  $curTime = $nowTime;
}

Dann haben Sie die Zeiten auch gleich in der richtigen Reihenfolge sortiert.

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

...