0 votes
in SoSci Survey (dt.) by s254461 (120 points)
closed by SoSci Survey

Hallo,

Ich möchte nun wie auf dieser Seite vorgeschlagen:

https://www.soscisurvey.de/help/doku.php/de:create:feedback-visual

Das IAT Ergebnis visuell als einzelnen Wert darstellen.
Ich habe eine Randomisierung mittels Zufallsgenerator erstellt (Bezeichnung: RD01) um die Gruppen zu einem von zwei unterschiedliche IATs aufzuteilen (IM02 und IM04 sind meine IATs). Ich möchte nun, dass den Teilnehmenden ihr Ergebnis am Ende der Durchführung des IATs angezeigt wird. Leider bekomme ich trotz mehrfacher Versuche den PHP-Code nicht dazu, das Ergebnis auf der Skala anzuzeigen.

Unten finden Sie den aktuellen Code.
Vielen Dank vorab für die Hilfe.

Grüße,

Code:

if (value('RD01') == 2) 
{
    // Wert/Ergebnis ermitteln
    $value = value('IM02');
    // z-Transformation
    $zValue = ($value - 5) / 2.8;
    // Extremwerte filtern
    if ($zValue < -2) {
    $zValue = -2;
    }
    if ($zValue > 2) {
    $zValue = 2;
    }
    // Textbaustein verwenden (nur, wenn $value einen gültigen Wert geliefert hat)
    if ($value > 0) {
    show('IM02', array(
        '%title%' => 'Stärke Ihrer Assoziation von Blumen als positiv',
        '%zValue100%' => (string)round($zValue * 100)
    ));
    }
}
else
{
// Wert/Ergebnis ermitteln
$value = value('IM04');
// z-Transformation
$zValue = ($value - 5) / 2.8;
// Extremwerte filtern
if ($zValue < -2) {
  $zValue = -2;
}
if ($zValue > 2) {
  $zValue = 2;
}
// Textbaustein verwenden (nur, wenn $value einen gültigen Wert geliefert hat)
if ($value > 0 && value('RD01') == 1) {
  show('IM02', array(
    '%title%' => 'Stärke Ihrer Assoziation von Frauen und Führung',
    '%zValue100%' => (string)round($zValue * 100)
  ));
}
}
closed with the note: Die letzte Frage in den Kommentaren blieb unbeantwortet...
by SoSci Survey (306k points)
Den IF-Filter können Sie vereinfachen...

if (value('RD01') == 2)  {
    $value = value('IM02');
} else {
    $value = value('IM02');
}

Der Rest des Codes ist ja identisch, wenn ich mich nicht täusche?

Lassen Sie sich bitte außerdem den Wert mal anzeigen mittels

debug($value);

Und dann beschreiben Sie bitte einmal, was angezeigt wird. Kleiner Tipp noch: Platzieren Sie folgenden JavaScript-Code bei den IATs, um das Testen zu vereinfachen:

<script>
window.addEventListener("load", function() {
    if (s2.IM02) s2.IM02.setTesting();
    if (s2.IM04) s2.IM04.setTesting();
});
</script>

Sie können auch gerne einen Pretest-Link zu der Seite posten.
by s254461 (120 points)
Hallo. Ich habe versucht diese Tipps umzusetzen. Leider verstehe ich die Anmerkungen nicht und bekomme es nicht zum Laufen.
1. Wo soll ich den Java Script Code plazieren? Im "Fragebogen zusammenstellen"? Und was macht dieser Java Script Code?
2. Ich muss jedes Mal wenn ich den IAT testen will, den Test durchführen, geht das auch einfacher?
3. Wo muss ich diesen Wert: debug($value); eingeben? Ich habe diesen im "Fragebogen zusammenstellen" als HTML Code eingebunden, habe jedoch überhaupt nichts angezeigt bekommen.
4. Ich weiß nicht wie ich den Code anpassen muss, der auf der Website angegeben ist, um ein IAT Ergebnis anzuzeigen. Daher folgende Fragen, benötige ich eine Z-Transformation? Warum -5 und / 2.8? Schneide ich hier -3 Extremwerte ab?
5. Woran sehe ich im IAT D-Score welche Zusammenhänge angegeben werden?
Hier ist der Pretest Link: https://www.soscisurvey.de/IAT-FK/?act=vrOyQcVTL9xdtz9EI1IfxBIh

Vielen Dank vorab.
by SoSci Survey (306k points)
> 1. Wo soll ich den Java Script Code plazieren? Im "Fragebogen zusammenstellen"?

Ja, korrekt.

> Und was macht dieser Java Script Code?

Er schaltet den IAT in eine Kurzversion, damit Sie nicht für jeden Testlauf den kompletten IAT durcharbeiten müssen. Denken Sie beim Testen auch daran, dass Sie bei zu vielen Fehlern keinen D-Score bekommen.

> 2. Ich muss jedes Mal wenn ich den IAT testen will, den Test durchführen, geht das auch einfacher?

Siehe 1) ... und man kann den IAT auch gezielt mit den Daten aus dem vorigen Durchlauf testen. Wenn Sie das probieren möchten, suche ich den passenden Code für Sie heraus.

> 3. Wo muss ich diesen Wert: debug($value); eingeben? Ich habe diesen im "Fragebogen zusammenstellen" als HTML Code eingebunden

Binden Sie es bitte als PHP-Code ein - und zwar in dem PHP-Code, wo Sie die Variable $value auch schon definieren und verwenden.

> Daher folgende Fragen, benötige ich eine Z-Transformation? Warum -5 und / 2.8?

Nein, benötigen Sie nicht. Aber Sie müssen dafür sorgen, dass der Wertebereich zu Ihrer Anzeige passt. Und das %zValue100% erwartet einen Wert bis 100.

> 5. Woran sehe ich im IAT D-Score welche Zusammenhänge angegeben werden?

Die Interpretation wird im Abschnitt "Auswertung" der Anleitung erklärt: https://www.soscisurvey.de/help/doku.php/de:create:questions:iat#auswertung
by s254461 (120 points)
edited by s254461
Danke für die Antwort. Ein paar Fragen haben sich nun geklärt, allerdings habe ich immernoch Schwierigkeiten mit dem Code, tut mir leid.
Dies ist nun der aktuelle Code:
if (value('RD01') == 2)
{
    // Wert/Ergebnis ermitteln
    $value = value('IM02R02');
debug($value);
    // z-Transformation
    $zValue = ($value - 5) / 2.8;
    // Extremwerte filtern
    if ($zValue < -3) {
    $zValue = -3;
    }
    if ($zValue > 3) {
    $zValue = 3;
    }
    // Textbaustein verwenden (nur, wenn $value einen gültigen Wert geliefert hat)
    if ($value > 0) {
    show('IM02R02', array(
        '%title%' => 'Stärke Ihrer Assoziation von Blumen als positiv',
        '%zValue100%' => (string)round($zValue * 100)
    ));
    }
}
else
{
// Wert/Ergebnis ermitteln
$value = value('IM04R02');
debug($value);
// z-Transformation
$zValue = ($value - 5) / 2.8;
// Extremwerte filtern
if ($zValue < -3) {
  $zValue = -3;
}
if ($zValue > 3) {
  $zValue = 3;
}
// Textbaustein verwenden (nur, wenn $value einen gültigen Wert geliefert hat)
if ($value > 0 && value('RD01') == 1) {
  show('IM04R02', array(
    '%title%' => 'Stärke Ihrer Assoziation von Frauen als Führungskräfte',
    '%zValue100%' => (string)round($zValue * 100)
  ));
}
}


Auf diesen erhalte ich diese Fehlermeldung:

Im PHP-Code trat ein Fehler auf.
Fehler im Fragebogen: Unsupported operand types: string - int
Zeile: 31

PHP-Code

028 $value = value('IM04R02');
029 debug($value);
030  
031 $zValue = ($value - 5) / 2.8;
032  
033 if ($zValue < -3) {
034   $zValue = -3;

Vielen herzlichen Dank für die geduldige und schnelle Unterstützung - ich bin für jede Hilfe sehr dankbar.

Mfg
by SoSci Survey (306k points)
Nun, wie goben schon geschrieben: Als erstes würde ich empfehlen, die massive Doppelung in den zwei IF-Zweigen zu entfernen. Packen Sie nur den Teil ins IF, der sich wirklich unterscheidet.

if (value('RD01') == 2) {
    $value = value('IM02R02');
} else {
    $value = value('IM04R02');
}

Dann wird es gleich übersichtlicher.

> Fehler im Fragebogen: Unsupported operand types: string - int

Da scheint PHP unzufrieden mit diesem Code: ($value - 5), offenbar ist $value keine Zahl. Was zeigt das debug($value) darüber denn an, wenn Sie im Debug-Modus arbeiten?
by s254461 (120 points)
Danke für die Antwort.

Im Debug Modus kommt folgende Meldung:
Debug-Information für $value:
$value = (string)

Laut der Beschreibung zum IAT und in der Übersicht der Variablen, müsste IM04R02 allerdings der improved D-Score Wert sein und kein String.
by SoSci Survey (306k points)
Jedenfalls sollte es kein leerer String sein. Auf welcher Seite (relativ zum IAT) haben Sie den PHP-Code denn platziert? Was wird in der debug-Information der Seite (rechts oben) denn noch angezeigt?

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

...