Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Problem mit Textausgaben aus versteckten Frageseiten

  • UMordor
  • UMordor's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
2 days 6 hours ago #270291 by UMordor
LimeSurvey Cloud Version 6.13.2 (Plan: Free)
Designvorlage: fruity_twentythree
Lokales Betriebssystem: MacOS Sequoia 15.2
Lokaler Browser: Chrome 136.0.7103.93

Hallo zusammen,

ich bin neu in der Welt von LimeSurvey und stehe gerade vor einem Problem, bei dem ich eure Unterstützung bräuchte. Entschuldigt bitte, falls meine Beschreibung nicht immer ganz fachmännisch ist – ich gebe mein Bestes!

Die grundlegenden Informationen habe ich bereits weiter oben im Beitrag hinterlegt. Im Anhang befindet sich die zugehörige .lss-Datei.

Mein Anliegen:
Ich möchte in einer Gruppe1 eine Frage (Q01) vom Typ "Liste (Optionsfelder)" mit drei Antwortmöglichkeiten (A01, A02, A03) verwenden. Abhängig davon, welche Option der Teilnehmer in Q01 auswählt, soll auf der nachfolgenden Frage (Q02), Typ "Textanzeige", ein spezifischer Text angezeigt werden.

Um diese Texte zu hinterlegen, habe ich drei versteckte Fragen (T01, T02, T03) vom Typ "Langer freier Text" erstellt und mit den entsprechenden Inhalten gefüllt.

Meine ursprüngliche Idee war, in der Frage Q02 einen Ausdruck wie den folgenden zu verwenden:
Code:
{if(Q01 == "A01", T01, if(Q01 == "A02", T02, if(Q01 == "A03", T03, "")))}

Leider wird damit gar nichts auf Q02 angezeigt. Ich habe bereits verschiedene Positionen für die versteckten Fragen (T01, T02, T03) ausprobiert – sowohl zwischen Q01 und Q02 als auch alle drei direkt hinter Q02. Das Problem besteht jedoch weiterhin.

Interessanterweise wird in der Fragenübersicht von Q2 für die Variablen T01, T02 und T03 der korrekte Textinhalt angezeigt. Das deutet darauf hin, dass die Texte erkannt werden, oder? Siehe Anhang "T01.png".

Um zu testen, ob die Textausgabe in Q02 generell funktioniert, habe ich folgenden einfachen Ausdruck verwendet:
Code:
{if(Q01 == "A01", "Text für Antwortoption Q01_A01 aus Quelltext Q02", if(Q01 == "A02", "Text für Antwortoption Q01_A02 aus Quelltext Q02", if(Q01 == "A03", "Text für Antwortoption Q01_A03 aus Quelltext Q02", "")))}

Und diese Texte werden problemlos angezeigt.

Auch der Versuch, lediglich die Variable von T01 auszugeben, schlägt fehl:
Code:
{T01}

Aktuell habe ich alle drei genannten "Code-Schnipsel" untereinander im Fragetext von Q02 platziert.

Hat jemand eine Idee, wie ich den Code anpassen muss, damit der jeweils passende Text aus den versteckten Fragen in Q02 angezeigt wird?

Vielen Dank im Voraus für eure Hilfe!





 

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 days 5 hours ago #270292 by holch
Ohne deine LSS gesehen zu haben, würde ich sagen das Problem liegt hier:

Abhängig davon, welche Option der Teilnehmer in Q01 auswählt, soll auf der nachfolgenden Frage (Q02), Typ "Textanzeige", ein spezifischer Text angezeigt werden.

Um diese Texte zu hinterlegen, habe ich drei versteckte Fragen (T01, T02, T03) vom Typ "Langer freier Text" erstellt und mit den entsprechenden Inhalten gefüllt.


Denn was machst du mit deiner Fomel:
Code:
{if(Q01 == "A01", T01, if(Q01 == "A02", T02, if(Q01 == "A03", T03, "")))}

Du sagst, wenn in Q01 mit A01 geantwortet ist, zeige die Antwort zu T01. T01 ist aber eine versteckte Antwort, sprich niemand hat auf diese Frage eine Antwort in den Text geschrieben.

Stattdessen erstellst du eben 3 verschiedene Textanzeigen mit den Texten und blendest diese über die Relevanz Equation ein.

Sprich die Textanzeige 1 bekommt sowas wie Q01=="A01" in die Relevance equation. D.h. sie wird nur angezeit, wenn die Antwort auf Q01 eben A01 war. Und so weiter.

Auch der Versuch, lediglich die Variable von T01 auszugeben, schlägt fehl:
Code:
{T01}

Aktuell habe ich alle drei genannten "Code-Schnipsel" untereinander im Fragetext von Q02 platziert.


Es schlägt nicht fehl, es wird einfach nur nichts angezeigt, weil es eben für T01 nichts anzuzeigen gibt.

Du könntest es mit T01.question versuchen, das sollte klappen. Ist aber einfach nicht der beste Ansatz.

Statt in einer Frage vom Typ Textanzeige unterschiedliche Texte anzuzeigen, erstellst du einfach 3 Textanzeigen und zeigst jeweils nur die relevante Textanzeige an. Wesentlich sauberer und klarer.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
2 days 4 hours ago #270293 by Joffm
Hallo,
noch etwas von mir.
Du hast ja bereits zwei Lösungen, nämlich 
  1. das "tayloring"
    {if(Q01 == "A01", "Text für Antwortoption Q01_A01 aus Quelltext Q02", if(Q01 == "A02", "Text für Antwortoption Q01_A02 aus Quelltext Q02", "Text für Antwortoption Q01_A03 aus Quelltext Q02"))}
  2. die Anzeige dreier Textanzeige-Fragen mittels Bedingung (@holch)

Jetzt ein bisschen Begründung.
  1. In Deiner lss waren keine Texte in den Textfragen. Diese müsstest Du ja wohl per Vorgabeantwort hineinschreiben.
  2. Anscheinend willst Du den dort eingetragenen Fragetext anzeigen.
    Das finde ich zwar ..., aber dann musst Du auch die richtige Eigenschaft benutzen.
    Siehe [url] www.limesurvey.org/manual/ExpressionScript_-_Presentation/de [/url]
    Um auf den Text der Frage zuzugereifen dient die Eigenschft ".question"
  3. Diese Fragen waren mittels "Diese Frage immer verstecken" ausgeblendet. Wenn man dies macht, sind sie überhaupt nicht in der Struktur der Webseite enthalten (daher kann ihr Wert auch nicht angezeigt werden): Nur Fragen vom Typ Gleichung werden auch in diesem Fall ausgeführt.
  4. Um Fragen zu verstecken, sie aber doch irgendwie auf der Webseite zu haben, müssen sie per css versteckt werden. Dazu wird die css-Klasse "d-none" eingetragen.
    Leider funktioniert dies bei Darstellung "Frage für Frage" nicht. Jetzt wird nämlich die Seite angezeigt, dann aber sofort die Frage versteckt, so dass nur der Header und die beiden Buttons angezeigt werden.
Um dies zu reparieren, müsstest Du "Gruppe für Gruppe" anzeigen und in jede Gruppe nur eine Frage platzieren; diese drei nicht gezeigten Fragen kommen dann in irgendeine Gruppe am Anfang.

Wie bereits gesagt werden Gleichungsfragen auch verarbeitet, wenn sie versteckt sind.
Daher könntest Du statt Textfragen einfach Gleichungsfragen nehmen.

Dies nur als kleine Zusatzinfo.

Es gibt also sehr viele Möglichkeiten; allerdings sind wirklich nur die beiden ganz am Anfang bereits genannten sinnvoll.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

  • UMordor
  • UMordor's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 day 17 hours ago #270298 by UMordor
Vielen Dank ebenfalls für deine prompte Antwort!

  1. das "tayloring"
    {if(Q01 == "A01", "Text für Antwortoption Q01_A01 aus Quelltext Q02", if(Q01 == "A02", "Text für Antwortoption Q01_A02 aus Quelltext Q02", "Text für Antwortoption Q01_A03 aus Quelltext Q02"))}

Ja, das "Tailoring" funktioniert hier mit den kurzen Texten. Mein Ziel ist jedoch die Ausgabe von deutlich längeren Texten, und die Verwaltung dieser direkt im Quelltext würde sehr schnell unübersichtlich werden.

  1. die Anzeige dreier Textanzeige-Fragen mittels Bedingung (@holch)

Die Anzeige funktioniert zwar für eine einzelne Frage, aber nicht, wenn auf einer Endseite Antworten von zwei oder mehr Fragen gleichzeitig ausgegeben werden sollen. Hierzu verweise ich auf meine Antwort auf den Beitrag von @holch.

  1. In Deiner lss waren keine Texte in den Textfragen. Diese müsstest Du ja wohl per Vorgabeantwort hineinschreiben.

In meiner
Code:
.lss
-Datei sehe ich die Texte:
Code:
<question><![CDATA[Textausgabe aus T01 in Q02, wenn Antwortoption Q01_A01 gewählt wurde!]]></question>
<question><![CDATA[Textausgabe aus T02 in Q02, wenn Antwortoption Q01_A02 gewählt wurde!]]></question>
<question><![CDATA[Textausgabe aus T03 in Q02, wenn Antwortoption Q01_A03 gewählt wurde!]]></question>

Diese Seiten und Informationen werde ich mir genauer ansehen. Vielen Dank dafür:

Das finde ich zwar ..., aber dann musst Du auch die richtige Eigenschaft benutzen.
Siehe [url][/url]   www.limesurvey.org/manual/ExpressionScript_-_Presentation/de  
...
...
Daher könntest Du statt Textfragen einfach Gleichungsfragen nehmen.


 

Please Log in to join the conversation.

  • UMordor
  • UMordor's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
1 day 17 hours ago #270300 by UMordor
Vielen Dank für deine schnelle Reaktion!Aktuell scheint mir folgende Lösung gut zu passen: 

Du könntest es mit T01.question versuchen, das sollte klappen. Ist aber einfach nicht der beste Ansatz.

Das funktioniert.Dieser Teil ist für mich ebenfalls verständlich:

Statt in einer Frage vom Typ Textanzeige unterschiedliche Texte anzuzeigen, erstellst du einfach 3 Textanzeigen und zeigst jeweils nur die relevante Textanzeige an. Wesentlich sauberer und klarer.

Allerdings sehe ich ein Problem, wenn sich innerhalb einer Fragegruppe mehrere Fragen befinden und je nach gewählter Antwortoption auf einer Endseite unterschiedliche Texte untereinander angezeigt werden sollen.

Beispiel:Fragegruppe 1 (Q01)
  • Antwort 1 (Q01_A01)
  • Antwort 2 (Q01_A03)
  • Antwort 3 (Q01_A03)
Fragegruppe 2 (Q02)
  • Antwort 1 (Q02_A01)
  • Antwort 2 (Q02_A03)
  • Antwort 3 (Q02_A03)
Fragegruppe 3 (Q03)
  • Erwartete Ausgabe: Die Texte, die zu beispielsweise Q01_A01 und Q02_A03 gehören, sollen untereinander angezeigt werden.
Oder übersehe ich etwas?





 

Please Log in to join the conversation.

  • holch
  • holch's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 day 13 hours ago #270305 by holch
Irgendwie verstehe ich die Struktur nicht. Aber wenn der Text mehrmals auf der gleichen Seite angezeigt werden soll, dann müssen die drei Textanzeigen auch mehrmals vorhanden sein (also eben an jeder Stelle wo sie angezeigt werden könnten).

Nicht desto trotz würde ich Textanzeigen verwenden und nicht Fragen vom typ langer freier Text. Ist kein grosser Unterschied, finde es nur sauberer eben kein Textfeld zu haben, selbst wenn versteckt.

Zugreifen solltest du auf den Text der versteckten Textanzeigen genauso, eben mit QID. question.

Help us to help you!
  • Provide your LS version and where it is installed (own server, uni/employer, SaaS hosting, etc.).
  • Always provide a LSS file (not LSQ or LSG).
Note: I answer at this forum in my spare time, I'm not a LimeSurvey GmbH employee.

Please Log in to join the conversation.

  • Joffm
  • Joffm's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
1 day 12 hours ago #270310 by Joffm
Hallo,

Datei sehe ich die Texte:

Ja, das sind aber die Fragentexte.
Ich bin natürlich davon ausgegangen, dass Du die Texte, die man normalerweise als Antwort auf eine Textfrage gibt, meinst. Weshalb solltest Du sonst eine Frage vom Typ "langer Text" nehmen.

Gut, neuerdings geht es also darum, die "Ergebnistexte" mehrerer Einfachfragen darzustellen.
Aber das ist doch kein Problem.
Diese Struktur
 
mit allen T-Fragen als Textanzeige (diese versteckt) Hier kannst Du auch ohne große Probleme HTML-Code einfügen um eben farbig, fett, oder was auch immer anzuzeigen

Um dann eben alle Texte am Ende anzuzeigen, noch einmal eine Textanzeige mit den entsprechenden IFs
 

Gibt dann so etwas
 

Die einfachsten Lösungen sind immer die besten.

Joffm

Volunteers are not paid.
Not because they are worthless, but because they are priceless

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose