0 votes
in SoSci Survey (dt.) by s140423 (145 points)

Der Hauptteil meines Fragebogens ist eine Bildbewertung. Aus einem Pool von 40 Seiten mit jeweils einem Bild und einer Bewertungsskala zieht mein Random Generator 20 Zettel, aus denen dann der Fragebogen für den Probanden aufgebaut wird.
Mein Problem ist nun, dass diese Bildbewertung in zwei Runden ablaufen muss: Einmal mit kurzer und einmal mit langer Stimuluspräsentation, sprich jedes Bild soll zwei mal bewertet werden und die Ergebnisse verglichen werden.

Wie bekomme ich es nun hin, dass in der zweiten Runde die gleichen Fragen gezeigt werden? Und bekomme ich überhaupt einen sinnvollen Datensatz, wenn die gleiche Seite im Fragebogen zwei mal bearbeitet wird, oder müsste ich die Messwiederholung vielleicht doch als Sub-Fragebogen in einem Multi-Level-Design anlegen, um die Bewertungen miteinander zu vergleichen?

1 Answer

+1 vote
by SoSci Survey (305k points)

Wie bekomme ich es nun hin, dass in der zweiten Runde die gleichen Fragen gezeigt werden?

Ich persönlich würde mit einer PHP-Variable und registerVariable() die Runde speichern und dann dieselben Seiten nochmal anzeigen, dann aber mit anderer Präsentationsdauer und anderer Frage. Außerdem würde ich loopPage() verwenden anstatt 40 Seiten anzulegen.

Aber wenn Sie es lieber "mit Gewalt" machen möchten, können Sie auch einfach nochmal 40 Seite anlegen, dort die Einstellungen für Präsentationsdauer und Fragen ändern. Und dann geben Sie diesen Seiten deiselben Kennungen wie den Seiten vorne, nur jeweils mit einem vorangestellten "B" oder einer nachgestellten "2".

Sie nehmen dann das Array, das Ihnen valueList() liefert und ergänzen dieses zusätzliche Zeichen bevor die setPageOrder() aufrufen. Wenn es also in der ersten Runde wie folgt aussah...

$pages = valueList('RG01', NULL, 'label');
setPageOrder($pages);

... dann könnte es zu Beginn der zweiten Runde so aussehen:

$pages = valueList('RG01', NULL, 'label');
$pages2 = [];
foreach ($pages as $pageID) {
  $pages2[] = $pageID.'2';  // hier wird eine "2" angehängt
}
setPageOrder($pages2);
by s140423 (145 points)
edited by s140423
Super, vielen Dank, das hat mir schon sehr weitergeholfen!

Für die "elegantere" Lösung mit loopPage() (nochmals Danke für den Tipp!) habe ich folgenden PHP-Code angelegt – dazu kurz vorweg, die Bilder sind noch einmal aufgeteilt in zwei Pools á 20 Bilder, von denen jeweils 10 gezogen werden. Jedes Bild ist dabei als einzelne Frage im "Anweisungen"-Feld angelegt:

question('CP03'); question ('CP10');    // Random-Generators für die beiden Bilder/Fragen-Pools
$fragenNS = valueList ('CP03', NULL, 'label');
$fragenUS = valueList ('CP10', NULL, 'label');
$fragenTot = ($fragenNS + $fragenUS);
shuffle ($fragenTot);
registerVariable($fragenTot);

Das scheint soweit auch zu funktionieren, zwei Fragen hätte ich aber noch:

1. Wie müsste denn der Code zu Beginn der zweiten Runde in diesem Fall aussehen?

2. Um die Präsentationsdauer zu begrenzen, hatte ich in der ursprünglichen Version mit 40 Seiten diesen HTML-Schnipsel auf den jeweiligen Seite platziert:

<script type="text/javascript">
var arrImg = document.images;
setTimeout(() => {arrImg[2].style.display = "none" }, 500)
</script>

Das funktioniert jetzt allerdings nicht mehr und meine JavaScript-Kentnisse sind leider etwas begrenzt, weshalb ich nachfragen wollte, wie man das anderweitig lösen könnte.

Vielen Dank schon mal im Voraus!
by SoSci Survey (305k points)
> Wie müsste denn der Code zu Beginn der zweiten Runde in diesem Fall aussehen?

Es kommt darauf an, was genau Sie an den Kennungen (Frage-IDs? Bildnamen?) ändern möchten. Aber es könnte wie folgt aussehen:

$fragen2 = [];
foreach ($fragenTot as $frageID) {
  $fragen2[] = $frageID.'2';  // hier wird eine "2" angehängt
}
registerVariable($fragen2);

Sie müssen ja Bilder und Fragen parallel rotieren. Deshalb kann ich ohne Kenntnis dessen, was Sie in $fragenTot genau gespeichert haben, nur vage antworten.

> HTML-Schnipsel auf den jeweiligen Seite

Ihr HTML-/JavaScript-Code hatte das dritte Bild (images[2] = drittes Bild) auf der Seite nach einer halben Sekunde ausgeblendet. Die "saubere" Lösung bestünde darin, dass man dem <img>-Tag eine HTML-ID gibt und es darüber adressiert. Aber auch da kann ich ohne Kenntnis des Codes nur eine sehr vage Antwort geben.
by s140423 (145 points)
edited by s140423
> Sie müssen ja Bilder und Fragen parallel rotieren.

Die Bilder habe ich direkt als Fragen angelegt. In der Image Rating Task Rubrik meines Projekts gibt es entsprechend 40 Fragen (eine pro Bild), wobei im Anweisungen-Feld statt eines Fragetextes das entsprechende Bild mit einer kurzen Unterschrift hinterlegt ist:

<div class="img-with-text" style="text-align: center; margin: 20px 0">
<img src="bild.jpg" style="height: 500px" alt="Source: Bundesarchiv, Plak 123-456-789"/>
<p><small><b>Source:</b> Bundesarchiv, Plak 123-456-789 / AD</small></p>
</div>.

Wenn ich das richtig verstanden habe, müsste ich für die zweite Runde meinen Fragenkatalog (die Rubrik habe ich "IR" genannt) duplizieren und dann jeweils eine "2" an die Frage-IDs anhängen. Könnte ich das ganze auch als neue Rubrik mit vorangestelltem "B", also "B IR" anlegen? Und ersetze ich dann im obigen Code die "2" durch ein "B", oder gehört das an eine andere Stelle?

> Die "saubere" Lösung bestünde darin, dass man dem <img>-Tag eine HTML-ID gibt und es darüber adressiert.

Im Web Inspector sieht der Code so aus:

<!-- begin question(IS64) -->
<div id="IS64_qst" class="s2question spacing">
<div class="explanation">
<div class="img-with-text" style="text-align: center; margin: 20px 0">

<img src="us060.jpg"
style="height: 500px" alt="Source: Princeton University Posters Collection, Archives Center, National Museum of American History" style="text-align: left; margin: 40px 0" />

<p><small><b>Bild:</b> Princeton University Posters Collection, Archives Center, <br>National Museum of American History</small></p>
</div>

Ich sehe da jetzt nur keine "typische" <img>-Tag bzw. ID, sondern nur <div class="img-with-text"[..]> und <img src. Ursprünglich hatte ich auch versucht, die Bilder darüber zu adressieren, das hat aber nicht funktioniert – wobei ich nicht genau sagen kann, ob vielleicht mein Code einfach fehlerhaft war. Wo könnte ich da ansetzen, bzw. wie müssten <img>-Tag mit HTML-ID aussehen?
by SoSci Survey (305k points)
>  Könnte ich das ganze auch als neue Rubrik mit vorangestelltem "B", also "B IR" anlegen?

Ja, natürlich. Das könnte dann so aussehen:

$fragen2 = [];
foreach ($fragenTot as $frageID) {
  $fragen2[] = 'XY'.substr($frageID, 2);
}

Und was das Bild angeht ... die ID können Sie einfach ergänzen, z.B.

<img src="us060.jpg"
style="height: 500px" alt="Source: Princeton University Posters Collection, Archives Center, National Museum of American History" style="text-align: left; margin: 40px 0" id="stimulus" />

Dann können Sie es über document.getElementById("stimulus") adressieren.

Ich würde übrigens vorschlagen, dass Sie für weitere Fragen den Knopf "related question" oben verwenden. Hier unten wird es langsam ein wenig unübersichtlich :)
by s140423 (145 points)
Vielen Dank, das hat mir sehr weitergeholfen! Mittlerweile funktioniert auch alles :)
asked Dec 8, 2021 in SoSci Survey (dt.) by s140423 (145 points) Fragen wiederholen

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

...