Hallo,
mir ist leider erst während der Datenerhebung aufgefallen, dass es praktisch sein könnte die Reihenfolge der zufällig angezeigten Fragebogenseiten pro teilnehmender Person zu haben.
Bisher habe ich folgenden funktionierenden PHP-Code zur Rotation der Fragebogenseiten verwendet:
if (!isset($seiten)) {
$seiten = array('TR01', 'TR02', 'TR03', 'TR04', 'TR05', 'TR06', 'IN01', 'IN02', 'IN03', 'IN04', 'TV01', 'TV02', 'TV03', 'TV04', 'CD01', 'CD02', 'CD03', 'CD04', 'PE01', 'PE02');
shuffle($seiten);
$seiten[] = 'TYPINT';
registerVariable($seiten);
}
setPageOrder($seiten);
Da die Datenerhebung wie gesagt schon läuft, möchte ich nicht groß rumprobieren müssen, deswegen meine Frage: fällt jemand ein Fehler in meinem umgeschriebenen Code nach der Anleitung unter https://www.soscisurvey.de/help/doku.php/de:create:functions:put#beispielrandomisierung_i
auf, oder sollte das so funktionieren?
if (!isset($seiten)) {
$seiten = array('TR01', 'TR02', 'TR03', 'TR04', 'TR05', 'TR06', 'IN01', 'IN02', 'IN03', 'IN04', 'TV01', 'TV02', 'TV03', 'TV04', 'CD01', 'CD02', 'CD03', 'CD04', 'PE01', 'PE02');
$indices = array_keys($seiten);
shuffle($indices);
$random = array();
for ($i=0; $i<count($indices); $i++) {
$id = id('IV01', $indices[$i] + 1);
put($id, $i + 1);
$random[$i] = $pages[$indices[$i]];
registerVariable($seiten);
}
setPageOrder($random, 'TYPINT');
Außerdem:
Muss ich die Variable IV01 irgendwo erstellen bzw. was genau bedeutet "interne Variable aus Frage-Kennung"? Wo finde ich diese bzw. wie erstelle ich diese?
Und (wenn es dann funktioniert) wie genau wird die Rangfolge im Datensatz gespeichert?