0 votes
in SoSci Survey (dt.) by s190091 (270 points)

Liebes SoSci-Team,

ich habe ein etwas kurioses Problem mit der Item-Sortierung bei einer Mehrfachauswahl:

Im Fragebogen gibt es zwei aufeinanderfolgende Fragen mit größtenteils identischen Items. Bei jeder der beiden Fragen gibt es folgende beiden Items:

  • Mü... [Rest des Wortes hier aus Datenschutzgründen abgeschnitten]
  • My... [Rest des Wortes hier aus Datenschutzgründen abgeschnitten]

Ich habe bei beiden Fragen "Alphabetisch sortieren" ausgewählt. Im Bearbeitungsmodus wird auch jeweils die gleiche Reihenfolge angezeigt - Mü... vor My...

Im fertigen Fragebogen erscheint bei der ersten Frage Mü... vor My..., bei der zweiten Frage ist es jedoch genau umgekehrt.

Haben Sie eine Idee, wo das Problem liegen könnte?

Herzlichen Dank für Ihre Unterstützung und beste Grüße

by SoSci Survey (326k points)
Spontan habe ich dazu keine Idee - wir testen das. Haben Sie beim EInbinden der Fragen die Items explizit angegeben, also z.B. einen PHP-Filter verwendet, welcher die Items aus Frage A automatisch nach Frage B übernimmt?

question('AB01', $items);

Oder bestimmte Bereiche definiert, z.B.

question('AB01', '1-10,20-25');
by s190091 (270 points)
Guten Tag,

erst mal herzlichen Dank für das superschnelle Feedback!

Die Programmierung hat ein Kollege vor einiger Zeit vorgenommen. Ich vermute, er hat die Ursprungsfrage zunächst in eine andere Kategorie kopiert und dann den Fragetext für die zweite Frage angepasst - die Items wurden also höchstwahrscheinlich schlicht kopiert (Genaueres könnte ich nächste Woche sagen, wenn ich den Kollegen wieder erreiche.)

Auf der Seite mit der zweiten Frage wird folgender PHP-Code verwendet:

______________
$itemliste = getItems('KD01', '==', 1);
$texte = [];
foreach ($itemliste as $itemID) {
  $texte[$itemID] = getItemtext('KD01', $itemID);
}
asort($texte);
$itemliste = array_keys($texte);
question('TD01', $itemliste);

_______________

KD01 ist hierbei die erste Frage, TD01 die zweite.

Hilft Ihnen das weiter oder benötigen Sie weitere Informationen?


Herzlichen Dank für Ihren großartigen Support und beste Grüße

1 Answer

0 votes
by SoSci Survey (326k points)

KD01 ist hierbei die erste Frage, TD01 die zweite.

Ich denke, das Problem besteht darin, dass die Items in den Fragen entweder nicht dieselben IDs haben (das wäre generell schlecht, weil der o.g. Code dann nicht korrekt funktionieren würde) oder dass die Items in der ersten Frage nicht alphabetisch sortiert sind.

Es passiert hier nämlich folgendes: Frage 1 word ohne explizite Definition der Items aufgerufen. Hier wird die dynamische Sortierung aktiv.

Dann wird aus der Liste der Items via getItems() (nicht alphabetisch sortiert!) eine Liste der Items erstellt, die in KD01 mit 1 beantwortet wurden. Diese Liste (dann ebenfalls nicht alphabetisch sortiert) wird verbindlich an TD01 übergeben.

TD01 muss sich nun also an die Liste halten, und kann die Items daher nicht dynamisch sortieren.

Die Lösung besteht m.E. darin, dass Sie die beiden fraglichen Items in beiden Fragen tauschen, und die IDs entsprechend anpassen. Tun Sie das aber nicht (!) falls Sie schon Daten erhoben haben bzw. vorhandene Daten aus einer früheren Erhebung vergleichen möchten.

by s190091 (270 points)
Wiederum herzlichen Dank für die schnelle Antwort. Ich bin mir allerdings nicht hundertprozentig sicher, ob ich das Problem korrekt verstanden habe.

Bei Frage KD01 lautet z.B. die ID eines Items KD_103; das entsprechende Item bei Frage TD01 trägt die ID TD1_103. Liegt in dieser unterschiedlichen Benennung das Problem?

Die Items in der ersten Frage sind in der Liste nicht alphabetisch sortiert, werden aber lt. Befehl in der Frage alphabetisch sortiert.

Herzlichen Dank und beste Grüße
by SoSci Survey (326k points)
Der Fragetyp ist eine Mehrfachauswahl, keine hierarchische Mehrfachauswahl, ist das korrekt?

In dem Fall sollte jedes Item eine numerische ID haben, die Sie z.B. unten in der Frage bei der Itemverwaltung sehen (nicht unter "Variablen", falls Sie dort nachgesehen haben).

Welche IDs haben denn dort Mü* und My*?
by s190091 (270 points)
Erneut vielen Dank für die Antwort in Lichtgeschwindigkeit!

Zu Ihren Fragen:
- Ja, es handelt sich in beiden Fällen um den Fragetyp Mehrfachauswahl!
- Bei beiden Fragen wird Mü* die Kennung 33 zugewiesen, My* die Kennung 34 - die Nummern stimmen also bei den jeweiligen Einträgen überein.

Benötigen Sie noch weitere Informationen?

Vielen Dank für Ihre Unterstützung!
by SoSci Survey (326k points)
1) Bitte testen Sie einmal, was passiert, wenn Sie die dynamische Sortierung abschalten - in welcher Reihenfolge werden die beiden Optionen dann angezeigt?

2) Bitte ergänzen Sie im PHP-Code folgende debug()-Zeile und berichten Sie, was die Debug-Information anzeigt.

debug($itemliste);
question('TD01', $itemliste);
by s190091 (270 points)
Besten Dank für Ihre Antwort vom Freitag!

1.) Ich habe im PHP-Code "asort($texte);" entfernt (das meinen Sie wahrscheinlich mit Abschaltung der dynamischen Sortierung?) - nun tritt das Problem nicht mehr auf.

Allerdings schließt sich daran meine nächste Frage an: Angenommen, die Namensliste ist primär nicht alphabetisch sortiert - würde die Abschaltung von "asort($texte);" die alphabetische Sortierung zerschießen? (Aufgrund von Namensänderungen und Wechsel von Personen können wir bei unserem mehrjährigen Projekt auf Dauer keine primäre alphabetische Sortierung garantieren.)

2.) Hier die Debug-Information zur Seite, die den PHP-Code enthält:

[Information]    Interview Nummer 21 wird fortgesetzt
[Information]    Der Fragebogen base im Projekt aerotest wird verwendet
[Information]    Die Verweildauer auf Seite 2 war 3 Sekunden
[Verarbeitung]    Lese Antworten von Seite 2
[Information]    Antwort auf KD01_05 = 1
[Information]    Antwort auf KD01_06 = 1
[Information]    Antwort auf KD01_09 = 1
[Information]    Antwort auf KD01_10 = 1
[Information]    Antwort auf KD01_14 = 1
[Information]    Antwort auf KD01_21 = 1
[Information]    Antwort auf KD01_33 = 1
[Information]    Antwort auf KD01_34 = 1
[Information]    Antwort auf KD01_35 = 1
[Information]    Antwort auf KD01_45 = 1
[Information]    Antwort auf KD01_54 = 1
[Information]    Antwort auf KD01 = 0
[Information]    Fragen bisher zu 100% vollständig beantwortet
[Verarbeitung]    Erstelle Seite 3 in Fragebogen base
[Inhalt]    Erstelle Frage TD07
[Inhalt]    Erstelle Frage TD01
debug()    Inhalt: 0:5, 1:6, 2:9, 3:10, 4:14, 5:21, 6:34, 7:33, 8:35, 9:45, 10:54
[Inhalt]    Erstelle Frage TD01


Herzlichen Dank für Ihre Unterstützung und beste Grüße
by SoSci Survey (326k points)
Arg, das asort() hatte ich im Code oben übersehen. Ja, das Problem liegt darin, dass diese PHP-Funktion mit Umlauten (genauer, mit UTF-8 Zeichen) noch nicht umgehen kann. Ich nehme mir auf die ToDo-Liste, dass wir dafür eine geeignete Funktion bereitstellen. Das kann aber ein paar Tage dauern.

Eventuell können wir getItems() stattdessen auch eine Möglichkeit beibringen, dass es die zuletzt verwendete Item-Reihenfolge verwendet. Dafür muss ich aber nochmal genauer im Code nachsehen, was da am meisten Sinn ergibt. Es wäre ja schon praktisch, wenn man mit weniger Code zum Ziel kommt.
by s190091 (270 points)
Herzlichen Dank für Ihre Unterstützung - dann freue ich mich, in nächster Zeit wieder von Ihnen zu hören!

Beste Grüße und viel Erfolg bei der Lösungssuche!
by SoSci Survey (326k points)
Tja, es stellte sich heraus, dass die Funktion zum Sortieren von Items eigentlich mal Priorität vor einer manuell definierten Abfolge haben sollte ... und dass diese Funktion einfach nur defekt war.

Der Fehler sollte nun auf www.soscisurvey.de behoben sein (s2survey.net muss noch ein wenig warten). Wir haben SoSci Survey in dem Zuge auch gleich noch erklärt, dass "Mü" vor "My" kommt ... sagen Sie gerne Bescheid, ob das Problem damit behoben ist.
by s190091 (270 points)
Herzlichen Dank - ich checke das gerne nach meinem Urlaub Ende Oktober!

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

...