0 votes
in SoSci Survey (dt.) by s155099 (170 points)

Hallo liebes SoSci-Team,

ich möchte auf einer neuen Seite ("Übersichtsseite") alle Auswahloptionen anzeigen lassen, die auf der vorherigen Seite in einer Mehrfachauswahl (Erweiterte Auswahl mit nicht-auswählbaren Oberkategorien) angekreuzt wurden.
Am besten wäre es, wenn die ausgewählten Optionen untereinander angezeigt werden, notfalls wäre auch eine Trennung durch ein Komma in Ordnung.

In dem Artikel "Antworten in einer Folgefrage anzeigen" steht:
"Eine Sonderrolle nehmen Mehrfachauswahl-Fragen ein. Hier kann man entweder die einzelnen Auswahloptionen betrachten (jede wird durch eine eigene Variable repräsentiert, vgl. Variablen-Übersicht) oder die gesamte Frage.
- Der Befehl value('MA01', 'label') liefert eine Komma-getrennte Liste der ausgewählten Optionen. Gleiches gilt für die Verwendung von replace('%platzhalter%', 'MA01', 'response')."

Also habe ich folgendes ausprobiert:

Es erscheint hier leider eine Fehlermeldung, ich finde meine(n) Fehler jedoch nicht.

Alternativ habe ich noch das versucht:

Jedoch zeigt es mir so auf der "Übersichtsseite" an: "Du hast deiner Müslibasis folgende Zutaten hinzugefügt: $antwort.", anstatt dass es die einzelnen vorher ausgewählten Optionen anzeigt.
In der debug Information steht "[Information] value("MZ06") = 5", da ich vorher 5 Optionen ausgewählt habe.

Ich wäre sehr dankbar über Hilfe bzw. eine kurze Erklärung, wo mein Fehler liegt und wie ich mein Problem lösen könnte.

Vielen Dank im Voraus und beste Grüße!

by s109993 (12.0k points)
Wo haben Sie ihr Script (das Erste) plaziert? Könnte es sein, das der html Schnipsel erst eine Seite nach der Vorbereitung des Platzhalters funktioniert?
Es wäre auch gut zu wissen, wie die Fehlermeldung heißt, bzw. was da steht.

4 Answers

+1 vote
by SoSci Survey (327k points)
selected by SoSci Survey
 
Best answer

Für eine hierarchische bzw. erweiterte Mehrfachauswahl verwenden Sie bitte eine FOR-Schleife, wie in der Anleitung Items in eine andere Frage übernehmen beschrieben.

Zusammen mit den Elementen für die HTML-Ausgabe könnte das dann aussehen wie folgt:

$selected = getItems('MZ06', 'is', 2);
$liste = '<ul>';
foreach ($selected as $itemID) {
  $liste.= '<li>'.getItemtext('MZ06', $itemID).'</li>';
}
$liste.= '</ul>';

html('<p>Ihre Auswahl: '.$liste.'</p>');
by s155099 (170 points)
Perfekt, nun funktioniert es genau so, wie ich es mir vorgestellt habe.

Vielen Dank für die Unterstützung!
0 votes
by s155099 (170 points)

Der html Schnipsel funkioniert leider auch dann nicht, wenn ich die Vorbereitung des Platzhalters eine Seite vorher mache.

Im folgenden die Fehlermeldung zu meinem ersten Vorschlag oben.

0 votes
by SoSci Survey (327k points)

In der ersten Zeile Ihre PHP-Codes fehlt lediglich ein Anführungzeichen:

// richtig
replace('%xyz%', 'MZ06', 'response');
// falsch
replace('%xyz%', 'MZ06, 'response');

In der zweiten Variante verwenden Sie die Variable bitte nicht innerhalb des Strings, sondern verbinden beides durch einen Punkt (.)

html('<p>Du hast..: '.$antwort.'</p>');

Eine andere Formatierung (z.B. als Liste untereinander) ist natürlich auch möglich. Allerdings benötigen Sie dafür u.U. eine kleine FOR-Schleife und ein wenig HTML-Code, z.B. um eine Liste mit <ul> und <li> zu erstellen.

Eine einfache Lösung könnte so aussehen:

$antwort = value('MZ06', 'label');
$liste = '<ul><li>'.implode('</li><li>', explode(',', $antwort)).'</li></ul>';
html('<p>Zutaten:</p>'.$liste);
0 votes
by s155099 (170 points)

Vielen Dank für den Lösungsvorschlag.

Ich habe diesen ausprobiert, jedoch habe ich hier leider ein ähnliches Problem wie vorher, und zwar werden nicht die einzelnen Optionen angezeigt, die vorher ausgewählt wurden, sondern es wird nur die Anzahl der ausgewählten Optionen angezeigt (in diesem Fall 7):

Woran könnte das liegen? Ich habe hier noch einen Screenshot der Frage (bzw. der Auswahloptionen und der Variablen), von welcher ich die ausgewählten Optionen anzeigen lassen möchte:

Vielleicht liegt hier das Problem?
Ich finde leider auch nach langer Recherche und viel Ausprobieren keine Lösung (bin absolute Anfängerin was SoSci und PHP bzw. HTML angeht).

Nochmal ganz herzlichen Dank für die Hilfe!

by SoSci Survey (327k points)
Sie hatten, glaube ich, nicht erwähnt, dass es sich um eine hierarchische/erweiterte Mehrfachauswahl handelt. Dort funktioniert die Abfrage der kompletten Liste per "label" nicht.

Ich notiere gleich noch eine Antwort mit etwas mehr PHP-Code.

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

...