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

Herzlichen Dank für die rasche Antwort. Ich versuche mich zum ersten Mal mit PHP und habe somit sehr eingeschränkte Kenntnisse... Mir ist nicht klar, wie ich drei Bilderpools als Arrays anlegen kann, ich habe die Bilder nun in den jeweiligen Items und damit drei Arrays F, R und N angelegt. Das Ganze sieht jetzt so aus:

$F = array('FT01', 'FT02', 'FT03', 'FT04', 'FT05');

$R = array('RT01', 'RT02', 'RT03', 'RT04', 'RT04');

$N = array('NE01', 'NE02', 'NE03', 'NE04', 'NE05');

shuffle($F);

shuffle($R);

shuffle($N);

$order = array(
  array('F', 0),
  array('R', 0),
  array('N', 0),
  array('N', 1),
  array('R', 1),
  array('F', 1),
  array('R', 2),
  array('F', 2),
  array('R', 3),
  array('N', 2),
  array('N', 3),
  array('F', 3),
  array('F', 4),
  array('N', 4),
  array('R', 4),

);

Jetzt stehe ich erneut an, denn ich möchte jeweils ein Item pro Seite anzeigen, in der oben beschriebenen Reihenfolge. Können Sie mir erklären, wie ich da weiter vorgehen muss?

in SoSci Survey (dt.) by s064032 (135 points)
edited by SoSci Survey

1 Answer

0 votes

Ich vermute einmal die Kennungen "FT01" u.s.w. sind Frage-Kennungen, in welchen Sie die Bilder eingebaut haben? Kann man so machen.

Ich setze Ihren PHP-Code einfach mal fort. Es geht nun darum, dass man die Reihenfolge $order mit Leben füllt - also konkret mit Einträgen aus den gemischten Arrays $F, $R und $N. Es ist übrigens untypisch, dass man Variablennamen mit einem Großbuchstaben beginnt, aber nicht falsch.

// Das isset() sorgt dafür, dass nur einmal gemischt wird
if (!isset($questions)) {

  $F = array('FT01', 'FT02', 'FT03', 'FT04', 'FT05');
  $R = array('RT01', 'RT02', 'RT03', 'RT04', 'RT04');
  $N = array('NE01', 'NE02', 'NE03', 'NE04', 'NE05');

  shuffle($F);
  shuffle($R);
  shuffle($N);

  $order = array(
    array('F', 0),
    array('R', 0),
    array('N', 0),
    array('N', 1),
    array('R', 1),
    array('F', 1),
    array('R', 2),
    array('F', 2),
    array('R', 3),
    array('N', 2),
    array('N', 3),
    array('F', 3),
    array('F', 4),
    array('N', 4),
    array('R', 4)
  );

  $questions = array();
  foreach ($order as $entry) {
    $index = $entry[1];  // Die zweite Zahl pro Zeile ist der Index
    // Und nun müssen wir nur noch entscheiden, welches der 3 Arrays wir verwenden
    if ($entry[0] == 'F') {
      $questionID = $F[$index];
    } elseif ($entry[0] == 'R') {
      $questionID = $R[$index];
    } elseif ($entry[0] == 'N') {
      $questionID = $N[$index];
    } else {
      html('<p>Fehlerhafter Code: '.$entry[0].'</p>');
    }
    $questions[] = $questionID;
  }
  registerVariable($question);
}

// Jetzt die Fragen noch anzeigen
$i = loopPage(count($questions));
question($questions[$i]);
by SoSci Survey (88.9k points)
...