0 votes
in SoSci Survey (dt.) by s148579 (215 points)
edited by SoSci Survey

Hallo liebes SoSci Survey-Team,

ich habe versucht eine interne Variable in meinen Fragbogen einzubinden, der die Anzahl an korrekten Antworten zählen soll. Dafür habe ich eine Interne Variable angelegt sowie folgenden PHP Code verwendet:

// Definition der Fragen und der korrekten Antworten
$fragen = [
'R201' => 2,// In Frage R201 ist die richtige Antwort die 1
'R202' => 2,
'R203' => 2,
'R204' => 2,
'R205' => 1,
'R207' => 1,
'R208' => 1,
'R210' => 1,
'R222' => 3,
'R221' => 3,
'R206' => 3,
'R215' => 2,
'R216' => 2,
'R212' => 2,
'R213' => 2,
'R209' => 1,
'R220' => 1,
'R217' => 1,
'R218' => 1,
'R211' => 3,
'R214' => 3,
'R219' => 3
];
 
// Initialisierung einer Zähler-Variable
$points = 0;
 
// Prüfung aller Fragen in einer Schleife
foreach ($fragen as $variable=>$correct) {
  // Die Antwort des Teilnehmers abrufen
  $answer = value($variable);
  // Überprüfen und ggf. einen Punkt zählen
  if ($answer == $correct) {
    $points++;  // Gleichbedeutend mit $points = $points + 1
  }
}
 
// Das Ergebnis in einer internen Variable speichern
put('IV01_01', $points);

Allerdings wird mir die interne Variable nicht im Datensatz angezeigt. Woran könnte das liegen?

Vielen Dank im Voraus!

by SoSci Survey (306k points)
Die interne Variable hat die Kennung IV01_01, korrekt?

Und Sie haben den Fragebogen auch min. zweimal ausgefüllt, sodass mindestens zwei unterschiedliche Punkt-Werte in der Variable gespeichert wurden? Es gibt beim Daten-Download nämlich die Option, leere und monotone Variablen auszublenden.

Was ist denn unter "Erhobene Daten" -> "Daten ansehen" für die Variable an Werten gespeichert?

Was zeigt denn die Debug-Information an, wenn Sie (nach dem Durchklicken der Seiten mit R2) auf die Seite mit dem PHP-Code gelangen?
by s148579 (215 points)
edited by s148579
Genau, die Kennung ist IV01_01.

Der Fragebogen wurde mehrfach in der Pre-Test-Version ausgefüllt.
Unter "Daten ansehen" wird zwar die Variable IV01_01 aufgeführt, allerdings sind die Werte dort leer.

Die Seite mit dem PHP-Code wird mir im Grunde nicht angezeigt, da ich auf der Seite nur den PHP-Code implementiert habe. Nach den Seiten mit "R2.." werde ich direkt auf die Seite nach dem PHP-Code weitergeleitet.

Ich habe auch versucht, die Zählung in einer anderen Variable zu speichern, allerdings wird diese Variable nicht einmal bei "Daten ansehen" angezeigt.
Als Zusatzinformation: Die Variablen mit der Kennung R2xy sind rotiert.
by SoSci Survey (306k points)
> Nach den Seiten mit "R2.." werde ich direkt auf die Seite nach dem PHP-Code weitergeleitet.

Sie soltle aber trotzdem in den Debug-Informationen auftauchen. Bitte posten Sie selbige einmal, damit ich genauer sehe, was da passiert.
by s148579 (215 points)
Hier die Debug-Informationen von der Seite nach dem PHP Code:

[Information]    Interview number 1121 is to be continued
[Information]    Questionnaire AN2021_SHORT from project assistantnews2021 will be used
[Information]    Retention period on page 48 has been 7 seconds
[Processing]    Reading answers from page 48
[Information]    Answer to R219 = 1
[Information]    Answer to TW09_01 = 1
[Information]    Answer to TW09_02 = 1
[Information]    Answer to TW09_03 = 1
[Information]    Answer to NE20_01 = 4
[Information]    Answer to N119_01 = 4
[Information]    Answer to RM19 = 2
[Information]    Answer to RM49 = 1
[Information]    100% of the questions have been answered so far
[Information]    According to the previously set page order, page 50 [PT01] is shown
[Processing]    Create page 50 in questionnaire AN2021_SHORT
[Content]    Create question BO01
[Content]    Create question BO03
[Content]    Create question IN05
[Content]    Create question BO04

1 Answer

0 votes
by SoSci Survey (306k points)

Wie es aussieht, überspringen Sie die Seite mit dem PHP-Code:

According to the previously set page order, page 50 [PT01] is shown

Bitte prüfen Sie, ob Sie irgendwo setPageOrder() oder setNextPage() verwenden. Wenn die Seite mit dem PHP-Code übersprungen wird, dann werden keine Punkte berechnet und nichts in die interne Variable geschrieben.

Sie können den PHP-Code übrigens auch einfach auf die nächste Seite mit Inhalt setzen. Das ist vielleicht ein klein wenig unübersichtlicher ... aber dann haben Sie keine "leere" Seite im Fragebogen, die Verwirrung stiftet (z.B. auch bzgl. des Fortschrittsbalkens).

by s148579 (215 points)
Ich habe den PHP-Code nun auf die nächste Seite (PT01) gesetzt und die leere Seite entfernt.

Ich verwende tatsächlich im vorherigen Verlauf folgenden PHP-Code:

question('RD03');  // Zettel in zufälliger Reihenfolge ziehen
$pages = valueList('RD03', NULL, 'label');  // Gezogene Zettel auslesen
setPageOrder($pages, 'PT01');  // Seiten als Seitenabfolge definieren
by s148579 (215 points)
Vielen Dank für den Hinweis mit der Code-Verschiebung! Es hat nun geklappt und die interne Variable wird nun erfasst!

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

...