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

Guten Tag,

Die Versuchspersonen in meiner Studie sollen gleichzeitig zwei Texte korrigieren, die nebeneinander auf einer Seite zu sehen sind und jeweils über 20 Zeilen gehen. Ich habe die Texte erstellt mit dem Fragetyp "Lückentext", d.h. die Versuchspersonen sehen jeweils eine Zeile und daneben ein leeres Feld, in das sie das (falls vorhanden) fehlerhafte Wort eintragen sollen. Wenn es kein fehlerhaftes Wort auf der Zeile gibt, sollen sie einfach eine Null reinschreiben (damit ich sehe, dass sie die entsprechende Zeile bearbeitet haben).

Nun möchte ich den Teilnehmenden auf der folgenden Seite anzeigen, wie viele der 20 Zeilen bzw. Felder sie bei den beiden Aufgaben bearbeitet haben. Sie sollen dann z.B. folgende Rückmeldung erhalten:

"Bei Text A haben Sie 12 von 20 Zeilen bearbeitet. Bei Text B haben Sie 8 von 20 Zeilen bearbeitet. Sie haben also mehr Zeilen bei Text A bearbeitet."

Mit welchem Code kann ich das machen? Ich vermute, dass ich ähnlich vorgehen muss, wie in der Hilfe zur individuellen Antwortprüfung (https://www.soscisurvey.de/help/doku.php/de:create:checks-php) beschrieben. Was dort beschrieben ist, ist aber nicht genau das, was ich möchte bzw. bin ich nicht darauf gekommen, wie ich den Code für meinen Zweck anpassen müsste.

Vielen Dank im Voraus für die Unterstützung!

in SoSci Survey (dt.) by s019137 (150 points)

2 Answers

0 votes

Wenn ich SIe korrekt verstehe, erkennen Sie das "bearbeitet" daran, dass das Feld nicht leer bleibt? In diesem Fall können Sie wie folgt zählen:

$inputs = getItems('AB01', '!=', '');
$anzahl = count($inputs);

Das Ergebnis können Sie z.B. mittels Platzhaltern im Text anzeigen.

by SoSci Survey (76.3k points)
0 votes

Vielen Dank für die schnelle Antwort. Leider hat es nicht funktioniert mit dem angegebenen Code, aber ich habe eine leicht andere Lösung gefunden. Wahrscheinlich ist es nicht die beste Lösung, aber es funktioniert. Falls es jemanden interessiert; hier der Code (TE02 und TE03 sind die beiden Aufgaben; TE06_01 und TE06_02 sind interne Variablen zur Speicherung der Anzahl bearbeiteter Felder für die anschliessende Rückmeldung):

PHP-Code für die Auswertung:

$inputs = getItems('TE02', 'valid', '');
$anzahlA = count($inputs);
put('TE06_01', $anzahlA);
replace('%anzahlA%', $anzahlA);

$inputs = getItems('TE03', 'valid', '');
$anzahlB = count($inputs);
put('TE06_02', $anzahlB);
replace('%anzahlB%', $anzahlB);

HTML-Code für Rückmeldung:

Bei Aufgabe A haben Sie insgesamt <FONT SIZE="5">%anzahlA%</FONT>
von 20 Zeilen bearbeitet.
Bei Aufgabe B haben Sie insgesamt <FONT SIZE="5">%anzahlB%</FONT> 
von 20 Zeilen bearbeitet.

PHP-Code für das Fazit:

if (value('TE06_01') == value('TE06_02')) {
html('
<br><br>Sie haben also <FONT SIZE="5">gleich viel</FONT> investiert in die <b>Aufgaben A und B<b>.
');
} else {
if (value('TE06_01') > value('TE06_02')) { 
    html('
<br><br>Sie haben also <FONT SIZE="5">mehr</FONT> investiert in die <b>Aufgabe A</b>.');
  } else {
html('
<br><br>Sie haben also <FONT SIZE="5">mehr</FONT> investiert in die <b>Aufgabe B.</b>');
    }
 }
by s019137 (150 points)
...