0 votes
in SoSci Survey (dt.) by s097485 (160 points)

Hallo!
Zusätzlich zu den randomisierten Bilder wird pro Bild immer noch ein Schieberegler präsentiert, der immer dasselbe abfragt. Nun wird ja jetzt nur die Antwort auf den Schieberegler abgespeichert. Ich kann weiß dann aber ja nicht, welches Bild damit gerade bewertet wurde.
Um die Reihenfolge meiner zufällig gezogenen Bilder festhalten zu können, also um zu sehen welche Frage sich auf welches Bild bezogen hat, muss ich die put() Funktion verwenden. Dafür brauche ich auch interne Variablen, doch bereits daran scheitert es bei mir.
Was genau muss in die interne Variable rein? Die einzelnen Bilder oder die Fragen dazu?

Ich bräuchte dabei dringend Hilfe!!

1 Answer

0 votes
by SoSci Survey (302k points)

Nachdem Sie über die Erhebungswellen hinweg alle Bilder zeigen, würde ich dringend empfehlen, dass Sie die Zuordnung Bild/Schieberegler=Variable immer konstant halten. Sonst wird das bei der Auswertung ziemlich anstrengend.

Eine kleine Herausforderung besteht darin, dass Sie mehr als 99 Stimuli/BIlder haben. Das heißt, Sie benötigen mindestens zwei Schieberegler-Fragen. Legen Sie eine mit 60 Items für das Bilder-Set A an und eine weitere (ggf. einfach kopieren) für das Bilder-Set B.

Und dann sehen wir uns die einzelnen Seiten an. Da sollte bisher folgender Code stehen:

$i = loopPage(count($wave1));
$key = $wave1[$i];
$bilder = $set1 + $set2;
html('<p><img src="'.$bilder[$key].'" alt=""></p>');

Der $key (1..120) definiert eindeutig das Bild, das angezeigt wird. Für Bilder bis Nr. 60 verwenden wir die Frage 1 (z.B. SR01) und für 60-120 die Frage 2. Und dann müssen wir nur noch angeben, welches Item (jeweils 1-60) angefragt werden soll.

$i = loopPage(count($wave1));
$key = $wave1[$i];
$bilder = $set1 + $set2;
html('<p><img src="'.$bilder[$key].'" alt=""></p>');
// Frage/Item zeigen
if ($key > 60) {
  question('SR02', $key - 60);
} else {
  question('SR01', $key);
}

Das mit put() benötigen Sie nur, wenn Sie in der Auswertung noch nachvollziehen müssen, wann genau welches Bild gezeigt wurde. Legen Sie z.B. für die erste Welle eine Frage "interne Variablen" IV01 mit 40 Items (Variabeln) an. Und direkt unter dem

registerVariable($wave1);

Ergänzen Sie noch

$n = 0;
foreach ($wave1 as $key) {
  $n++;
  put(id('IV01', $n), $key);
}
by s097485 (160 points)
Ein großes Dankeschön an Sie!
Mein PHP-Code sieht nun folgendermaßen aus:

$set1 = array(
1 => 'O_N_10015238.jpg',
2 => 'O_N_10015361.jpg',
3 => 'O_N_10053273.jpg',
4 => 'O_N_10091542.jpg',
5 => 'O_N_1025356.jpg',
6 => 'O_N_10441262.jpg',
7 => 'O_N_10485567.jpg',
8 => 'O_N_10508084.jpg',
9 => 'O_N_10894081.jpg',
10 => 'O_N_10894098.jpg',
11 => 'O_N_11007330.jpg',
12 => 'O_N_11512041.jpg',
13 => 'O_N_11618880.jpg',
14 => 'O_N_12585176.jpg',
15 => 'O_N_13565744.jpg',
16 => 'O_N_13742919.jpg',
17 => 'O_N_13844724.jpg',
18 => 'O_N_17796440.jpg',
19 => 'O_N_1948285.jpg',
20 => 'O_N_21578564.jpg',
21 => 'O_N_2185835.jpg',
22 => 'O_N_22824806.jpg',
23 => 'O_N_2365871.jpg',
24 => 'O_N_2480953.jpg',
25 => 'O_N_2488947.jpg',
26 => 'O_N_2608039.jpg',
27 => 'O_N_3023541.jpg',
28 => 'O_N_3179208.jpg',
29 => 'O_N_3378328.jpg',
30 => 'O_N_3466480.jpg',
31 => 'O_N_3788920.jpg',
32 => 'O_N_3788921.jpg',
33 => 'O_N_3802211.jpg',
34 => 'O_N_4005221.jpg',
35 => 'O_N_4021164.jpg',
36 => 'O_N_4427411.jpg',
37 => 'O_N_4583660.jpg',
38 => 'O_N_4716064.jpg',
39 => 'O_N_5100417.jpg',
40 => 'O_N_5359207.jpg',
41 => 'O_N_5368617.jpg',
42 => 'O_N_5368843.jpg',
43 => 'O_N_5369566.jpg',
44 => 'O_N_5804285.jpg',
45 => 'O_N_6165825.jpg',
46 => 'O_N_6255146.jpg',
47 => 'O_N_6261444.jpg',
48 => 'O_N_6381281.jpg',
49 => 'O_N_6425101.jpg',
50 => 'O_N_6425181.jpg',
51 => 'O_N_6591934.jpg',
52 => 'O_N_6669704.jpg',
53 => 'O_N_7794939.jpg',
54 => 'O_N_7935139.jpg',
55 => 'O_N_7966162.jpg',
56 => 'O_N_8294139.jpg',
57 => 'O_N_9502254.jpg',
58 => 'O_N_9600960.jpg',
59 => 'O_N_9600968.jpg',
60 => 'O_N_9740938.jpg',
);
$set2 = array(
61 => 'O_U_1007574.jpg',
62 => 'O_U_1007777.jpg',
63 => 'O_U_10547957.jpg',
64 => 'O_U_10730291.jpg',
65 => 'O_U_1076222.jpg',
66 => 'O_U_11597067.jpg',
67 => 'O_U_11756008.jpg',
68 => 'O_U_11850666.jpg',
69 => 'O_U_11975512.jpg',
70 => 'O_U_11999198.jpg',
71 => 'O_U_1208257.jpg',
72 => 'O_U_1208259.jpg',
73 => 'O_U_12190299.jpg',
74 => 'O_U_13089236.jpg',
75 => 'O_U_13334757.jpg',
76 => 'O_U_13640953.jpg',
77 => 'O_U_13640987.jpg',
78 => 'O_U_13641014.jpg',
79 => 'O_U_13641023.jpg',
80 => 'O_U_14272719.jpg',
81 => 'O_U_14272772.jpg',
82 => 'O_U_15324703.jpg',
83 => 'O_U_16306377.jpg',
84 => 'O_U_16844021.jpg',
85 => 'O_U_17346113.jpg',
86 => 'O_U_17710049.jpg',
87 => 'O_U_17998745.jpg',
88 => 'O_U_18131360.jpg',
89 => 'O_U_1922428.jpg',
90 => 'O_U_2235448.jpg',
91 => 'O_U_22993760.jpg',
92 => 'O_U_22993911.jpg',
93 => 'O_U_23485686.jpg',
94 => 'O_U_2612104.jpg',
95 => 'O_U_3194143.jpg',
96 => 'O_U_5358369.jpg',
97 => 'O_U_5498772.jpg',
98 => 'O_U_6367694.jpg',
99 => 'O_U_6421804.jpg',
100 => 'O_U_6421828.jpg',
101 => 'O_U_6421909.jpg',
102 => 'O_U_6430243.jpg',
103 => 'O_U_6430343.jpg',
104 => 'O_U_6430431.jpg',
105 => 'O_U_6446477.jpg',
106 => 'O_U_6906876.jpg',
107 => 'O_U_7134857.jpg',
108 => 'O_U_7153700.jpg',
109 => 'O_U_7172760.jpg',
110 => 'O_U_7567159.jpg',
111 => 'O_U_7626629.jpg',
112 => 'O_U_7682405.jpg',
113 => 'O_U_7732320.jpg',
114 => 'O_U_7732384.jpg',
115 => 'O_U_8094709.jpg',
116 => 'O_U_8203306.jpg',
117 => 'O_U_8380980.jpg',
118 => 'O_U_854230.jpg',
119 => 'O_U_953999.jpg',
120 => 'O_U_9743295.jpg',
);

$keys1 = array_keys($set1);
$keys2 = array_keys($set2);
shuffle($keys1);
shuffle($keys2);

registerVariable($set1);
registerVariable($set2);
registerVariable($keys1);
registerVariable($keys2);



if (!isset($wave1)) {
  $wave1 = array_merge(
    array_slice($keys1, 0, 20),
    array_slice($keys2, 0, 20)
  );
  shuffle($wave1);
  registerVariable($wave1);
}
$i = loopPage(count($wave1));
$key = $wave1[$i];
$bilder = $set1 + $set2;
html('<p><img src="'.$bilder[$key].'" alt=""></p>');


// Frage/Item zeigen
if ($key > 60) {
  question('SR02', $key - 60);
} else {
  question('SR01', $key);
}

registerVariable($wave1);

$n = 0;
foreach ($wave1 as $key) {
  $n++;
  put(id('IV04', $n), $key);
}

Würde der dann soweit stimmen?

Und wie bekomme ich es hin, die Zuordnung Bild-Schieberegler konstant zu halten? Meinen Sie damit, dass jedes Bild genau mit einem Schieberegler verknüpft bleibt?
by s097485 (160 points)
verwende ich denselben Code dann auch bei Zeitpunkt 2 und 3?
// Frage/Item zeigen
if ($key > 60) {
  question('SR02', $key - 60);
} else {
  question('SR01', $key);
}

es wird nämlich bei Zeitpunkt2  und Zeitpunkt 3 eine fehlermeldung angezeigt...
by SoSci Survey (302k points)
Der Code für die Wellen 2 und 3 geth erst ab dem $i = loopPage() los. Ab dort muss dann das $wave1 und die Grenze von array_slice() ausgetauscht werden und außerdem benötigen Sie neben IV04 noch 2 weitere Fragen "interne Variablen" IV05 und IV06, die Sie dann verwenden. Alles andere bleibt.

> Meinen Sie damit, dass jedes Bild genau mit einem Schieberegler verknüpft bleibt?

Ja genau. Das sollte hier bereits der Fall sein. Nur der letzte Teil...

registerVariable($wave1);

$n = 0;
foreach ($wave1 as $key) {
  $n++;
  put(id('IV04', $n), $key);
}

gehört noch weiter nach oben. Dort steht schonmal registerVariable(). An diese Stelle gehört es, nicht ans Ende.

> es wird nämlich bei Zeitpunkt2  und Zeitpunkt 3 eine fehlermeldung angezeigt...

Fehlermeldungen sind enorm informativ. Wenn Sie den Wortlauf verraten, kann ich mehr dazu sagen :)
by s097485 (160 points)
Es hat jetzt geklappt!
Vielen Dank!!

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

...