0 votes
ago in SoSci Survey (dt.) by s005748 (175 points)

Hallo zusammen,

ich habe in einem Fragebogen mit php-Code und Zufallsgeneratoren verschiedene Fragen randomisiert. Als kurzen Überblick: Es gibt 10 Fragen in jeweils zwei verschiedenen Bedingungen (A und B). Ich habe das ganze so eingestellt, dass jeweils 5 Fragen aus Bedingung A und 5 Fragen aus Bedingung B gezogen werden (ohne, dass sich die Paare jeweils überschneiden - wenn also Frage 4A gezogen wird, wird nicht auch 4B gezogen). Entweder werden dann zunächst die 5 Fragen aus Bedingung A gezeigt und dann die 5 aus B oder anders herum.

Ich habe den Code getestet, als die Antwortpflicht bei jeder der Fragen eingestellt war. Da hat alles so funktioniert, wie es sollte. Jetzt haben wir uns umentschieden und wollten die Nachhaken-Option verwenden. Wenn man sich jetzt aber mehrfach hintereinander für die Nachhaken-und-Weiter-Option statt einer Antwort entscheidet, scheint die Randomisierung nicht mehr zu funktionieren. Es werden willkürlich andere Szenarien aus beiden Bedingungen angezeigt und teilweise werden dann auch mehr als 10 Szenarien insgesamt angezeigt. Zusätzlich werden teilweise die Antworten aus vorherigen Fragen übernommen und sind dann quasi schon voreingestellt.

Da der Code funktioniert, wenn man auf jede Frage eine Antwort gibt, verstehe ich nicht, wo genau hier das Problem liegt und wie ich das beheben kann. Vielleicht hat da jemand eine Idee?

Liebe Grüße

ago by SoSci Survey (367k points)
Posten sie doch bitte mal den PHP-Code, den Sie verwenden. Ihre Beschreibung deutet darauf hin, dass dort außer den Zufallsgeneratoren noch weitere Mechnismen zum Einsatz kommen, die nicht robust ggü. der wiederholten Anzeige einer Fragebogen-Seite sind.
ago by s005748 (175 points)
Ich habe den Code als Antwort hier auf die Frage hochgeladen.

1 Answer

0 votes
ago by s005748 (175 points)

Ich habe einen Zufallsgenerator (1 oder 2) für die Seitenabfolge und dazu diesen Code ("Ich" und "Partner" sind die Bedingungen A und B):

$zahl = value('CO02');

if ($zahl == 1) {
setPageOrder('Ich1','Ich2','Ich3','Ich4','Ich5','Partner1','Partner2','Partner3','Partner4','Partner5');
} elseif ($zahl == 2) {
setPageOrder('Partner1','Partner2','Partner3','Partner4','Partner5','Ich1','Ich2','Ich3','Ich4','Ich5');
}

Und dann habe ich einen Zufallsgenerator (CO01) von 1-10 und dazu diesen Code (s.u.) auf jeweils einer einzelnen Seite fortlaufend.
Der value läuft von CO01x01 bis CO01x10
Die Kennung SC steht für die Fragen der Ich-Bedingung (A) und PC für die Fragen aus der Partner-Bedingung (B).

Beispiel für den Code auf Seite "Ich1"

if (value('CO01x01') == 1) {
question('SC01'); question('SC02');
} else if (value('CO01x01') == 2) {
question('SC03'); question('SC04');
} else if (value('CO01x01') == 3) {
question('SC05'); question('SC06');
} else if (value('CO01x01') == 4) {
question('SC07'); question('SC08');
} else if (value('CO01x01') == 5) {
question('SC09'); question('SC10');
} else if (value('CO01x01') == 6) {
question('SC11'); question('SC12');
} else if (value('CO01x01') == 7) {
question('SC13'); question('SC14');
} else if (value('CO01x01') == 8) {
question('SC15'); question('SC16');
} else if (value('CO01x01') == 9) {
question('SC17'); question('SC18');
} else if (value('CO01x01') == 10) {
question('SC19'); question('SC20');
}

Beispiel für Code auf Seite Partner2:

if (value('CO01x07') == 1) {
question('PC01'); question('PC02');
} else if (value('CO01x07') == 2) {
question('PC03'); question('PC04');
} else if (value('CO01x07') == 3) {
question('PC05'); question('PC06');
} else if (value('CO01x07') == 4) {
question('PC07'); question('PC08');
} else if (value('CO01x07') == 5) {
question('PC09'); question('PC10');
} else if (value('CO01x07') == 6) {
question('PC11'); question('PC12');
} else if (value('CO01x07') == 7) {
question('PC13'); question('PC14');
} else if (value('CO01x07') == 8) {
question('PC15'); question('PC16');
} else if (value('CO01x07') == 9) {
question('PC17'); question('PC18');
} else if (value('CO01x07') == 10) {
question('PC19'); question('PC20');
}

ago by SoSci Survey (367k points)
Danke für die Details. Das sieht soweit eigentlich unverfänglich aus.

setPageOrder() hat beim Nachhaken mitunter Probleme, wenn leere Seiten enthalten sind, aber das scheint hier nicht der Fall zu sein.

Okay, dann machen Sie bitte als nächstes Folgendes, um den Fehler einzugrenzen: Starten Sie ein Interview im Debug-Modus, klicken Sie bis zur zweiten Seite innerhalb der Seitenabfolge, kopieren Sie die Debug-Information von der Seite in einen Kommerntar hier in die Frage, lassen Sie die Fragen auf der Seite unbeantwortet, klicken sie auf "Weiter" (laut Ihre Beschreibung kommt dann nicht die korrekte Seite?) und kopieren Sie auch die dann angezeigte Debug-Information.
ago by s005748 (175 points)
Ich habe leider noch kein System erkannt, wann der Fehler auftritt und wann nicht. Bisher war es immer, wenn man ein paar mal die Fragen beantwortet hat und dann mehrfach hintereinander die Nachhaken-Option nutzt.
Ich habe jetzt die beiden Fragen auf der ersten Seite beantwortet und ganz normal auf "Weiter" geklickt:

[Information]    Interview Nummer 102 wird fortgesetzt
[Information]    Der Fragebogen base im Projekt ProjektSRP2_2526 wird verwendet
[Information]    Die Verweildauer auf Seite 4 war 20 Sekunden
[Verarbeitung]    Lese Antworten von Seite 4
[Information]    Antwort auf SC05_01 = 5
[Information]    Antwort auf SC06_01 = 5
[Information]    Fragen bisher zu 100% vollständig beantwortet
[Information]    Entsprechend der vorher festgelegten Seitenabfolge wird Seite 5 [Ich2] angezeigt
[Verarbeitung]    Erstelle Seite 5 in Fragebogen base
[Information]    value("CO01x02") = 6
[Information]    value("CO01x02") = 6
[Information]    value("CO01x02") = 6
[Information]    value("CO01x02") = 6
[Information]    value("CO01x02") = 6
[Information]    value("CO01x02") = 6
[Inhalt]    Erstelle Frage SC11
[Inhalt]    Erstelle Frage SC12
[Information]    Speicherbedarf RAM 1.0 MB (Seiteninhalt 0.2 MB)

Dann habe ich noch 2x die Fragen beantwortet und dann immer nur noch übersprungen, bis dann bei einer Seite die Antworten schon voreingestellt waren:

[Information]    Interview Nummer 103 wird fortgesetzt
[Information]    Der Fragebogen base im Projekt ProjektSRP2_2526 wird verwendet
[Information]    Die Verweildauer auf Seite 8 betrug zusätzliche 2 Sekunden
[Verarbeitung]    Lese Antworten von Seite 8
[Information]    Ignoriere fehlende Antwort SC13_01 (Nachgehakt)
[Information]    Keine Antwort für SC13_01
[Information]    Ignoriere fehlende Antwort SC14_01 (Nachgehakt)
[Information]    Keine Antwort für SC14_01
[Information]    Fragen bisher zu 36% vollständig beantwortet
[Verarbeitung]    Erstelle Seite 9 in Fragebogen base
[Information]    value("CO01x06") = 3
[Information]    value("CO01x06") = 3
[Information]    value("CO01x06") = 3
[Inhalt]    Erstelle Frage PC05
[Inhalt]    Erstelle Frage PC06
[Information]    Speicherbedarf RAM 1.0 MB (Seiteninhalt 0.2 MB)

Dann die nächste Seite (dort wird angezeigt, dass ich 5 und 6 auf die Fragen geantwortet habe, aber diese Antwort war eben schon vorausgewählt):

[Information]    Interview Nummer 103 wird fortgesetzt
[Information]    Der Fragebogen base im Projekt ProjektSRP2_2526 wird verwendet
[Information]    Die Verweildauer auf Seite 10 betrug zusätzliche 5 Sekunden
[Verarbeitung]    Lese Antworten von Seite 10
[Information]    Antwort auf PC05_01 = 5
[Information]    Antwort auf PC06_01 = 6
[Information]    Fragen bisher zu 36% vollständig beantwortet
[Verarbeitung]    Erstelle Seite 11 in Fragebogen base
[Information]    value("CO01x08") = 5
[Information]    value("CO01x08") = 5
[Information]    value("CO01x08") = 5
[Information]    value("CO01x08") = 5
[Information]    value("CO01x08") = 5
[Inhalt]    Erstelle Frage PC09
[Inhalt]    Erstelle Frage PC10
[Information]    Speicherbedarf RAM 1.0 MB (Seiteninhalt 0.2 MB)

Danach sind alle weiteren Fragen auch schon vorausgewählt und in falscher Randomisierung/Anzahl gewesen, bis dann irgendwann der restliche Fragebogen angezeigt wurde, der nichts mehr mit dieser Seitenabfolge hier zu tun hat und problemlos funktioniert.

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

...