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

Am Ende meiner Erhebung soll den Probanden, die Versuchspersonenstunden anerkannt bekommen wollen (vorherige Frage à la "Möchten Sie Vpn sammeln?", dann Einsatz von Filter), ein Einmalkode angezeigt werden, den sie im Sekretariat meines Instituts vorlegen können.
Ich habe bereits eine Reihe von zufälligen Codes zusammengestellt und möchte diese durch SoSci Survey anzeigen lassen, wobei jeder Code nur einmal verteilt werden kann.

Wie kann ich das umsetzen? Ist da z. B. der Zufallsgenerator von Nutzen?

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

1 Answer

0 votes

Ja, ich würde den Zufallsgenerator empfehlen, um einen der Codes auszuwählen. Legen Sie im Zufallsgenerator fest, dass Sie eine Gleichverteilung bei der Ziehung haben möchten, sodass der Code direkt "entwertet" wird.

Im Fragebogen selbst binden Sie dann den Zufallsgenerator (z.B. 'RG01') ein und darunter folgenden PHP-Code:

// Sind noch Codes verfügbar?
if (value('RG01_CP') > 0) {
  text('no more');
} else {
  replace('%code%', 'RG01', 'response');
  html('<p>Ihr Code ist: %code%</p>');  // Oder als Textbaustein mit Platzzahlter %code%
}
by SoSci Survey (79.6k points)
Vielen Dank für Ihre Hilfe!
Ich musste den Code ein wenig abändern, damit es bei mir funktioniert. Mein Zufallsgenerator heißt TA01.

// Sind noch Codes verfügbar?
if (value('TA01') < 0) {
  goToPage('end');
} else {
  prepare_input('TA01');
  replace('%code%', 'TA01', 'response');
  html('<p>Ihr Kennwort ist: %code%</p>');  
}

1. Habe ich das > in der ersten Zeile durch ein < ersetzt, weil ja nur ein Code angezeigt werden soll, wenn noch welche da sind.
2. Wenn keine mehr da sind, soll automatisch zur letzten Seite vorgesprungen werden.
3. Um den Code anzuzeigen, braucht es zusätzlich den Befehl prepare_input(). Die Einmalkennworte (z. B. 12345) habe ich als Zettel in meinen Zufallsgenerator eingelesen und mit Codes versehen (à la: 01 = 12345). Mit diesen Codes (01, 02, ...) arbeitet ja der Befehl.

Es klappt soweit alles. Zufällig werden mir im Debug-Modus die Kennwörter angezeigt. Trotzdem wird mir ein Fehler im Fragebogen angezeigt: "Für eine ganze Frage vom Typ Zufallsgenerator kann grundsätzlich kein unabhängiges Eingabefeld erzeugt werden. Verwenden Sie ein Item der Frage TA01 oder einen anderen Fragetyp."

Was bedeutet das? Muss noch irgendetwas anders eingestellt werden oder kann ich das übergehen?
Ich bin ziemlich sicher, dass es '>' sein muss, denn Sie wollen hier überprüfen, ob min. ein Code schon zum zweiten Mal vergeben wird. Der Zufallsgenerator macht das nämlich, wenn Sie es hier nicht abfangen.

Statt prepare_input() sollten Sie question() verwenden. Oder eben den Zufallsgenerator TA01 einfach über den PHP-Code in die Seite ziehen.
Hab wieder '>' genommen - Ihre Erklärung hat mir geholfen, das Prinzip zu verstehen. Dass Drag and Drop funktioniert, wusste ich gar nicht. Jetzt läuft alles reibungslos, keine Fehlermeldungen mehr, juhu :)
...