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

0 votes

Hallo Zusammen,

ich habe über die Zuordnungsaufgabe manuell einen Stroop Test erstellt. Ich bin soweit gekommen, dass ich ein Farbworte in unterschiedlicher Farbe alle 1500ms einblende. Auch die Antwortkategorien sind gewählt. So weit so gut. Theoretisch habe ich den Test zu 99% erstellt. Wenn ich den Debug Modus laufen lasse zum testen steht da nachdem alle Items einmal durchgespielt wurden immer das "0 % der Fragen/Items beantwortet wurden" obwohl ich eigentlich immer die entsprechende Antwortkategorie gedrückt habe.

Mein Probleme sind Folgende:
1. Warum erkennt Sosci Survey nicht, dass ich in der Zuordnungsaufgabe eine Antwort gegeben habe ?
2. Wenn ein Item eingeblendet wird und die richtige Antwortkategorie gedrückt wird (z.B "r" für roter Farbinhalt oder "b" für blauer Farbinhalt) möchte ich, dass die Probanden Feedback bekommen (richtig oder falsch) und das der Test automatisch weiter geht. Ich bin mittlerweile so weit gekommen, dass nach Drücken einer Antwortkategorie immer ein kleines Fenster aufgeht indem immer nur "falsch" steht. Ich bin da echt mit meinem Latein am ende. Ich brauche einfach einen richtig programmierten Textbaustein. Hat da irgendwer eine Ahnung wie ich jetzt weitermache?

in SoSci Survey (dt.) by s113463 (140 points)

1 Answer

0 votes

ad 1) Sie meinen den Fortschrittsbalken des Fragebogens? Diese zählt bearbeitete Seiten - und da Sie bei der Zuordnungsaufgabe die Seite nicht verlassen, kann er nichts zählen. Zwei Lösungsmöglichkeiten:

a) Sie können ihn auf der Seite mittels option('progress', 'no'); ausblenden

b) Sie können den Fortschrittsbalken innerhalb der Seite mittels JavaScript und SoSciTools.Progress wandern lassen. Dafür ist aber eben mal wieder ein Stückchen JavaScript-Programmierung erforderlich...

ad 2) Glückwunsch - das ist schonmal ganz ordentlich. Posten Sie gerne den JavaScript-Code, den Sie aktuell haben und einen Pretest-Link direkt (!) zur Seite mit dem Test. Am besten als neue Frage. Dann sehe ich mir das gerne an.

by SoSci Survey (238k points)
Hier der Link für das "Warum UP": https://www.soscisurvey.de/test161505/?act=w502s1VgwqdTz0Hc9UWpfnQJ

Und hier der Textbaustein den ich unter die Zuordnungsaufgabe gepackt habe:

<script type="text/javascript">
<!--
 
// Filterfunktion
function selFilter(item, option) {
  // Der erste Filter reagiert, wenn bei Stimulus 1 die Option links (1) ausgewählt wurde
  if ((item == 'B001_22a') && (option == 'blau')) {
    alert('richtig');
    return 21;
  }
  else {
    alert('falsch');
    return 21;
  }
  if ((item == 'B001_21a') && (option == 'blau')) {
    alert('richtig');
    return 15;
  }
  else {
    alert('falsch');
    return 15;
  }
  if ((item == 'B001_15a') && (option == 'blau')) {
    alert('richtig');
    return 11;
  }
  else {
    alert('falsch');
    return 11;
  }
   if ((item == 'B001_11a') && (option == 'gelb')) {
    alert('richtig');
    return 03;
  }
  else {
    alert('falsch');
    return 03;
  }
   if ((item == 'B001_03a') && (option == 'grün')) {
    alert('richtig');
    return 34;
  }
  else {
    alert('falsch');
    return 34;
  }
  if ((item == 'B001_34a') && (option == 'blau')) {
    alert('richtig');
    return 2;
  }
  else {
    alert('falsch');
    return 2;
  }
// Linke Kategorie (1) beim zweiten Stimulus ignorieren
  if ((item == 2) && (option == 1)) {
    // Ignorieren
    return -2;
  }
  // Der dritte Filter soll erst ab Stimulus Nr. 3 reagieren
  if (item >= 3) {
    // Wird die rechte Kategorie (2) angeklickt, ist die Frage zu Ende
    if (option == 2) {
      // Ende
      return -1;
    }
  }
}
 
// Die Zuordnungsaufgabe wird erst aktiviert, wenn die Seite vollständig geladen ist.
// Daher muss man attachEvent() verwenden, um die Callback-Funktion erst nach Abschluss
// des Ladevorgangs zuzuweisen.
//
// Wichtig: Statt assignmentAB01 muss hier "assignment" plus die Kennung der Frage verwendet werden
 
SoSciTools.attachEvent(window, "load", function() {
    assignmentB001.setCallbackSelect(selFilter);
});
 
// -->
</script>

Zwei Dinge möchte ich:
a) Feedback nach jedem eingeblendetem Wort (Richtig oder Falsch) aber ohne, dass Manuel das kleine Fenster geschlossen werden muss
b)Flüssiger Durchlauf von Anfang bis Ende
> if ((item == 'B001_22a') && (option == 'blau')) {

Anstatt 'B001_22a' müsste es 22 heißen, und bei der Option wird ebenfalls ein numerische Code erwartet. Außerdem stimmt die Verschachtelung nicht ganz:

if (item == 22) {
  if (option == 2) {
    // richtig
  } else {
    // falsch
  }
}

Und weil man das nicht jedesmal hinschreiben will, arbeitet man hier mit einem Array, das man vorab in der Funktion definiert:

function selFilter(item, option) {
  var correct = {
    22 : 1,
    23 : 3,
    // u.s.w.
  };
  if (option == correct[String(item)]) {
    // richtig
  } else {
    // falsch
  }
}

Das verkürzt den Code enorm :)

Wenn das funktioniert, dann kümmern wir uns um das Ein- und Ausblenden. Hier können Sie schonmal ein HTML-<div>-Elemente erstellen, das mittels CSS position: absolute (bitte googeln) über der Aufgabe angezeigt wird und den Text "falsch" in roter Schrift enthält. Außerdem muss das Element ein "id" Attribut haben.
Ufffff... kriegen wir das nicht irgendwie hin, dass sie auf meinen Fragebogen zugreifen um das kurz zu fixen. Bin doch schon sooo weit :D
Wenn Sie Programmier-Service buchen möchten, dann ist das halt ein wenig teurer als kostenlos ;) Außerdem möchten Sie bei dem Ganzen ja auch was lernen.
...