0 votes
in SoSci Survey (dt.) by s136183 (115 points)
edited by s136183

Hallo SoSci-Team,

In unserem Fragebogen loopen wir über offene Texteingaben die so konfiguriert sind dass sie ausgefüllt werden müssen (Standardverhalten, keine Individuelle Antwort-Prüfung).

Bei vollständig ausgefüllter Frage (hier: Seite 15) + 'weiter' funktioniert der Loop wie erwartet & Seite 16 wird erstellt.
Bei unvollständig ausgefüllter Frage wird erwartungsgemäß die Fehlermeldung gezeigt:

[Information] Es fehlen notwendige Antworten, die Seite wird wiederholt.

Wird jetzt die fehlende Eingabe ergänzt + 'weiter' wird Seite 15 noch einmal wiederholt angezeigt, inklusive der vollständigen Eingaben. Erwartetes Verhalten wäre Seite 16 zu erstellen. Debug hier:

[Information] Fragen bisher zu 100% vollständig beantwortet
[Information] Entsprechend der vorher festgelegten Seitenabfolge wird Seite 15 [] angezeigt

Ausser loopToPage() befinden sich keine weiteren Befehle für die Seitenanordnung im Fragebogen.
Könnt ihr uns hier weiterhelfen?

Vielen Dank im Voraus :)

Edit:

<!-- Seite 14 -->
// getItem() prepares a random item from the urn 
$itm = getItem($fullUrn);
registerVariable($itm);

$IP_index = $itm[0][8];
registerVariable($IP_index);

loopToPage('feedback', 3);

-

<!-- Seite 15 -->
// generate mail with drawn item data, random draw (1,3) to choose template
$genNo = random(1,3);
generateMail(
$genNo,
$itm[0][0],
$itm[0][1],
$itm[0][2],
$itm[0][3],
$itm[0][4],
$itm[0][5]);

question($questions_input[$IP_index]);

-

<!-- Seite 16 -->
// generate feedback with data from drawn item
generateFeedback(
$itm[0][2],
$itm[0][5],
$itm[0][6],
$itm[0][9]);

/////////////////////////
// remove drawn item from fullUrn & push it's dbkey to drawn. 
array_splice($fullUrn,$itm[1],1);
array_push($drawn,$IP_index);

<!-- Debug komplett bei fehlender Angabe, S.15 -->
[Information]	Interview Nummer 952 wird fortgesetzt
[Information]	Der Fragebogen base im Projekt archivx wird verwendet
[Information]	Die Verweildauer auf Seite 15 war 6 Sekunden
[Verarbeitung]	Lese Antworten von Seite 13+14+15
[Information]	Antwort auf RE05_01 = 'Antwort 01'
[Information]	Antwort auf RE05_02 = 'Antwort 02'
[Information]	Antwort auf RE05_03 = 'Antwort 03'
[Information]	Keine Antwort für RE05_04
[Information]	In der Frage RE05 fehlt eine erforderliche Antwort
[Information]	Fragen bisher zu 75% vollständig beantwortet
[Information]	Es fehlen notwendige Antworten, die Seite wird wiederholt
[Verarbeitung]	Erstelle Seite 15 in Fragebogen base
[Inhalt]	Erstelle Frage RE05

--

<!-- Debug komplett nach ergänzen fehlender Angabe & page reload S.15 -->
[Information]	Interview Nummer 952 wird fortgesetzt
[Information]	Der Fragebogen base im Projekt archivx wird verwendet
[Information]	Die Verweildauer auf Seite 15 betrug zusätzliche 50 Sekunden
[Verarbeitung]	Lese Antworten von Seite 15
[Information]	Antwort auf RE05_01 = 'Antwort 01'
[Information]	Antwort auf RE05_02 = 'Antwort 02'
[Information]	Antwort auf RE05_03 = 'Antwort 03'
[Information]	Antwort auf RE05_04 = 'Antwort 04'
[Information]	Fragen bisher zu 100% vollständig beantwortet
[Information]	Entsprechend der vorher festgelegten Seitenabfolge wird Seite 15 [] angezeigt
[Verarbeitung]	Erstelle Seite 15 in Fragebogen base
[Inhalt]	Erstelle Frage RE05
by SoSci Survey (329k points)
Könnten Sie Ihre Frage bitte um den kompletten PHP-Code und die komplette Debug-Information ergänzen? Was genau befindet sich auf den Seite 15 und 16?
by s136183 (115 points)
Vielen Dank für die Rückmeldung!
Die Frage ist um die Seiten 14-16 + Debug ergänzt;

Für die Auswertung wird die Reihenfolge der Ziehung benötigt & deswegen in internen Variablen gespeichert:

generateMail() sowie generateFeedback() erstellen hierfür dynamisch einen Teil der Frage aufgrund der Parameter  die getItem() randomisiert aus der Datenbank holt.

1 Answer

+1 vote
by SoSci Survey (329k points)

[Verarbeitung] Lese Antworten von Seite 13+14+15

Ich denke, das Problem liegt an dieser Stelle.

Wenn ich das richtig interpretiere, dann zeigen die Seiten 13 und 14 u.U. keine Inhalte. Das heißt, dass SoSci Survey jeweils automatisch zur nächsten Seite weiter-springt.

Das heißt aber auch: Wenn bei diesem Set aus drei Seiten eine Antwort fehlt, dann wird das komplette Set wiederholt. Und meine Vermutung ist, dass loopToPage() an dieser Stelle einen Fehler macht.

Kurz als Hintergrund: Intern ist die Verabreitung der Seitenabfolgen recht aufwändig. In der nächsten Version wird die zugrundeliegende Programmierung deutlich überarbeitet - damit auch Sonderfälle wie von Ihnen hier beschrieben korrekt verarbeitet werden.

Die einfachste Lösung bestünde vermutlich darin, wenn Sie vermeiden, dass Seite 13 leer bleibt. Evtl. können Sie den Code einfach auf die vorhergehende Seite ziehen. Meine Vermutung wäre, dass der Fehler dann nicht mehr auftritt.

Wenn das nicht hilft, würde ich Sie bitten, mir das Projekt als XML-Datei an info@soscisurvey.de zu übermitteln. Dann müsste ich das im Detail untersuchen, damit wir noch einen Bugfix für die aktuelle Version implementieren.

by s136183 (115 points)
edited by s136183
Danke, werde ich versuchen.

Seite 13 & 14 sind tatsächlich leer & präparieren insgesamt nur den Loop:
S. 13 das Array mit den Fragen & dem Registrieren der Urnen, S. 14 wie oben gezeigt den eigentliche Loop - mit den PHP-Variablen die nach jedem Durchlauf bewusst  überschrieben werden.
by s136183 (115 points)
edited by s136183
Ihre Vermutung war richtig, Umstellen der PHP-Variablen & Mergen der Seiten 13 & 14 mit Seiten die Inhalte anzeigen hat geholfen.

Vielen Dank nochmal, selten so guten Support gewohnt.
Lassen Sie uns wissen wenn Sie den originalen Fragebogen für eventuelles Bugfixing haben möchten.
by SoSci Survey (329k points)
Danke, aber ich hoffe inständig, dass wir es vor der Fertigstellung der neuen Version nicht mehr reparieren müssen. Und in der neuen Version vermeiden wir dieses Problem durch eine geschicktere Datenstruktur :)

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

...