0 votes
in SoSci Survey (dt.) by s216237 (150 points)
edited by SoSci Survey

Liebes SoSci Team,

ich verwende in meinem Fragebogen rotierte Fragen.

Leider wird mir, wenn ich auf "Daten ansehen" gehe, die falsche Reihenfolge der rotierten Fragen angezeigt. Was fehlt bei meinem PHP Code, damit die Reihenfolge gespeichert wird, also wenn die dargebotene Reihenfolge bei 16 Items mit Bild zB. 3,1,10,8,6,9,14,13,7,... usw. ist (also zuerst Item 3, dann als zweites Item 1 usw.)?

Mein PHP Code lautet:

if (!isset($blocks)) {
  // Liste mit Frage-Kennungen und zugehörigen Bildern
  $blocks = [
    ['BR01', 'bild1.png'],
    ['BR02', 'bild2.gif'],
    ['BR03', 'bild3.jpg'],
    ['BR04', 'bild4.png'],
    ['BR05', 'bild1.png'],
    ['BR06', 'bild2.gif'],
    ['BR07', 'bild3.jpg'],
    ['BR08', 'bild4.png'],
    ['BR09', 'bild1.png'],
    ['BR10', 'bild2.gif'],
    ['BR11', 'bild3.jpg'],
    ['BR12', 'bild4.png'],
    ['BR13', 'bild1.png'],
    ['BR14', 'bild2.gif'],
    ['BR15', 'bild3.jpg'],
    ['BR16', 'bild4.png']
  ];
 
  // Die Liste mischen
  shuffle($blocks);
  // Die Listen auf allen Seiten verfügbar machen
  registerVariable($blocks);
}
 
// Anzeige der Blöcke
$i = loopPage(count($blocks));
 
// Bild anzeigen
html('<p><img src="'.$blocks[$i][1].'" alt=""></p>');
 
// Frage anzeigen
question($blocks[$i][0]);

Liebe Grüße

by SoSci Survey (308k points)
> Leider wird mir, wenn ich auf "Daten ansehen" gehe, die falsche Reihenfolge der rotierten Fragen angezeigt.

Mit dem ognigen Code dürfte Ihnen überhaupt keine Reihenfolge angezeigt werden, denn Sie speichern die Reihenfolge m.E. an keiner Stelle in diesem Code.

Ich würde empfehlen, das shuffle() durch einen Zufallsgenerator zu ersetzen, in welchem Sie z.B. durch ein Komma getrennt die Fragekennung und den Namen des Bildes (pro Zeile) hinterlegen.

Mittels value(..., 'csv') können Sie das dann relativ bequem auslesen und verwenden.

1 Answer

0 votes
by s216237 (150 points)

Es tut mir leid, wenn ich so "doof" nachfrage, aber wie ersetze ich denn das shuffle() durch einen Zufallsgenerator?

Kann ich zu meinem bestehenden PHP Code nicht was hinzufügen, damit die Reihenfolge gespeichert wird?

Ehrlich gesagt, war ich schon heil froh überhaupt die Randomisierung/Rotation hinbekommen zu haben, da ich von dem allen überhaupt keine Ahnung habe.

by SoSci Survey (308k points)
> Kann ich zu meinem bestehenden PHP Code nicht was hinzufügen, damit die Reihenfolge gespeichert wird?

Doch, aber das wäre deutlich komplizierter als das shuffle() durch einen Zufallsgenerator zu ersetzen.

Im Großen und ganzen sieht es aus wie folgt, wenn der Zufallsgenerator die Kennung RG01 hat und pro Interview alle Zettel zieht.

// Ziehung
question('RG01');

// Richtige Variable finden und Seite wiederholen
$vars = getItems('RG01');
$i = loopPage($vars);
$varID = id('RG01', $i + 1);
$drawn = value($varID, 'csv');

// Inhalte anzeigen
html('<p><img src="'.$drawn[1].'" alt=""></p>');
question($drawn[0]);
by s216237 (150 points)
Super vielen Dank.
Was muss ich denn bei der vorletzten Zeile bei "$drawn" in die Klammer schreiben? Bei "1" so wie Sie es mir geschickt haben, kommt eine Fehlermeldung :/

Mein Zufallsgenerator heißt PR01  und so habe ich den Code geschrieben:
// Ziehung
question('PR01');

// Richtige Variable finden und Seite wiederholen
$vars = getItems('PR01');
$i = loopPage($vars);
$varID = id('PR01', $i + 1);
$drawn = value($varID, 'csv');

// Inhalte anzeigen
html('<p><img src="'.$drawn[1].'" alt=""></p>');
question($drawn[0]);
by SoSci Survey (308k points)
> kommt eine Fehlermeldung

Bitte teilen Sie diese mal im Wortlaut mit - und fügen Sie auch folgende Zeile ein und berichten Sie, was angezeigt wird.

debug($drawn);

Am besten posten Sie gleich die komplette Debug-Information: https://www.soscisurvey.de/help/doku.php/de:create:debugging
by s216237 (150 points)
Ich habe jetzt noch mal einen komplett neuen PHP Code erstellt, der für das Rotieren einzelner Seiten benutzt wird.

Es sollen insgesamt 16 Seiten (meine Kennung ist BR01 bis BR16) rotiert werden, was auch funktioniert.
Hier ist der Code:
question('PR01');  // Zettel in zufälliger Reihenfolge ziehen
$pages = valueList('PR01', NULL, 'label');  // Gezogene Zettel auslesen
setPageOrder($pages, 'ETVS');  // Seiten als Seitenabfolge definieren

Ich möchte aber auch die Reihenfolge der rotierten Seiten abspeichern. Was muss ich zum Code noch hinzufügen?
by SoSci Survey (308k points)
Die Reihenfolge steht jetzt bereits in den Variaben PR01***.
by s216237 (150 points)
Ah okay, aber wenn ich auf "Daten ansehen" gehe, wird mir da überhaupt nicht die Reihenfolge angezeigt. Was mache ich falsch?

Ich bin gerade total am verzweifeln. Danke, dass Sie mir immer antworten und helfen.
by SoSci Survey (308k points)
Was wird denn unter "Daten ansehen" an Variablen angezeigt, die zu PR01 gehören ... und was steht dort drin, wenn Sie zum letzten Datensatz gehen?
by s216237 (150 points)
Ah super danke!

Jetzt habe ich aber das Problem, dass die Antworten auf die Items falsch gespeichert werden. Die Reihenfolge wird richtig abgespeichert, aber nicht die Antworten.

und der PHP Code für BR18 für die 16 Seiten ist:
question('BR18');  // Zettel in zufälliger Reihenfolge ziehen
$pages = valueList('BR18', NULL, 'label');  // Gezogene Zettel auslesen
setPageOrder($pages, 'ETVS');  // Seiten als Seitenabfolge definieren

Wie werden die Antworten auf die Items des BR18 gespeichert?
by SoSci Survey (308k points)
Wenn Sie nur die Seiten rotieren ... inwiefern werden die Antworten dann falsch abgespeichert? Ich würde jetzt mal vermuten, dass jede der Seiten einfach eine Frage zeigt, diese Frage hat eine fest Variable und dort wird die Antwort immer hinein gespeichert, egal in welcher Abfolge die Seiten präsentiert werden.
by s216237 (150 points)
Also die Seiten werden rotiert und auf denen ist jeweils ein Bild und dieses soll auf einer fünfstufigen Skala 1-5 bewertet werden. Und diese Antworten (1,2,3,4,5) werden falsch gespeichert.

Also statt zB. Antwort 5 bei Seite 1, Antwort 2 bei Seite 2, wird dann eine falsche Antwort (Zahl) gespeichert.

Wie bekomme ich es hin, dass die jeweilige Antwort richtig gespeichert wird?
by SoSci Survey (308k points)
Bitte verfolgen Sie beim Ausfüllen einmal die Debug-Informationen:
https://www.soscisurvey.de/help/doku.php/de:create:debugging

Posten Sie auch gerne die Debug-Information von Seite 1 und jene, die nach dem Klick auf "Weiter" dann angezeigt wird.

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

...