Welcome to the LimeSurvey Community Forum

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

Mehrfachauswahl-Fragen in Textanzeige auswerten mit Checkbox-Anzeige der Antwort

More
2 weeks 6 days ago #274828 by Balrog
Bitte helfen Sie uns, Ihnen zu helfen und füllen Sie folgende Felder aus:
Ihre LimeSurvey-Version: 6.17.14 LimeSurvey-Cloud
Genutzte Designvorlage: fruity
==================
Hallo zusammen, 

zuletzt hatte ich eine sehr schöne Lösung vom joffm bekommen, wie man mit <ul class="list-group"> am Ende einer Umfrage die Antworten auswerten und in einer Tabelle schön anzeigen kann. Soweit so gut, funktioniert wirklich schön. 
Nun hat meine Kollegin eine Umfrage erstellt, als Wissenstest für andere Mitarbeitenden. Es gibt 25 Fragen, jede ist eine Mehrfachauswahl mit je 5 Antworten (SQ001-005). Hier muss am Ende die Auswertung in der Tabelle so erweitert werden, dass es eigentlich fast gleich aussehen sollte, wie die Frage (beim Ausfüllen) selbst: 
Links sollte der Fragentext, darunter die 5 Antworten (immer so) angezeigt werden, rechts dann am besten mit Checkboxen auswerten und anzeigen, was der User als Antwort gewählt hat und rechts davon dann mit einer Checkbox die richtige Antwort zeigen - wie etwa in der angehängten Skizze. 
Den Fragentext und darunter die Antworten kriege ich noch hin mit der genannten list-group Methode und implode, aber könnt ihr mir bitte helfen, wie ich es mit den Checkboxen und alles in der richtigen Reihe (Zeile) anzeigen kann?

Zur Info dazu: wie schon immer bei uns, ist javascript deaktiviert, F12 fürs Entwicklungsmodus auch deaktiviert. 

Danke im Voraus!
 

Please Log in to join the conversation.

More
2 weeks 6 days ago #274829 by Balrog

Please Log in to join the conversation.

More
2 weeks 6 days ago #274832 by Joffm
Hallo,
also dafür würde ich einfach eine HTML-Tabelle machen
Zum Beispiel so.
Das ist jetzt ohne viel "Schönheit".
  
Die Checkboxen von hier
[url] getbootstrap.com/docs/5.3/forms/checks-radios/#checks [/url]

Joffm

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

Please Log in to join the conversation.

More
2 weeks 4 days ago #274847 by Balrog
Hallo joffm, 

danke schon mal für die Hilfe. Ich habe es mal ausprobiert, jetzt bräuchte ich halt noch die Checkboxen den User-Antworten entsprechend 'checked' oder 'unchecked'. Kannst du bitte helfen, wie ich es im Bootstrap Code dynamisch eingeben kann? 
Code:
    <tbody>
        <tr>
            <td>Allgemeine....</td>
            <td>
            <div class="form-check"><input [b]checked="checked"[/b] class="form-check-input" disabled="disabled" id="checkCheckedDisabled" type="checkbox" value="" /></div>
            </td>
            <td>
            <div class="form-check"><input class="form-check-input" disabled="disabled" id="checkDisabled" type="checkbox" value="" /></div>
            </td>
        </tr>

Wenn der User also eine bestimmte die Antwort gewählt hat, sollte checked="checked" sein, ansonsten nichts. 

Please Log in to join the conversation.

More
2 weeks 4 days ago - 2 weeks 4 days ago #274848 by Balrog
Ah und wie gesagt, leider kann ich javascript nicht verwenden, alles ist deaktiviert bei uns.

Und wenn ich 
Code:
<td><input class="form-check-input" disabled="disabled" id="checkCheckedDisabled" type="checkbox" {if(Frage1_SQ001 == 'Y', "checked"', '')} /></td>
eingebe, wird mir nach dem OK im Quellcode Editor der Teil 
Code:
{if(Frage1_SQ001 == 'Y', "checked"', '')}
immer automatisch ausgelöscht, d.h. wenn ich den Quellcode Editor nochmal öffne, ist der Teil zwischen {} komplett weg.
Last edit: 2 weeks 4 days ago by Balrog.

Please Log in to join the conversation.

More
2 weeks 4 days ago #274850 by Balrog
Aktuell habe ich es nur so lösen können, dass ich in der ganzen Zeile den Expression Code habe und den HTML Code zwischen Apostrophen gesetzt habe: 
Code:
<td>{if(Frage1_SQ001 == 'Y', '<input checked="checked" class="form-check-input" disabled="disabled" id="checkCheckedDisabled" type="checkbox" />', '<input class="form-check-input" disabled="disabled" id="checkCheckedDisabled" type="checkbox" />')}</td>
Ihr kennt sicher eine schönere Lösung, vielleicht geht es auch mit Variablen, die müsste ich nur irgendwo außerhalb setzen. 

Please Log in to join the conversation.

More
2 weeks 4 days ago #274859 by Joffm
Hallo,
zunächst hierzu

d.h. wenn ich den Quellcode Editor nochmal öffne, ist der Teil zwischen {} komplett weg.

Passiert bei mir nicht.
Prima vista ist dies ein Anführungszeichenproblem; es ist ein einfaches Anführungszeichen zuviel.
{if(Frage1_SQ001 == 'Y', "checked"', '')}

Allerdings hat der HTML-Editor auch oftmals seine eigenen Ansichten; insbesondere, da er ja HTML-Code direkt interpretiert und dann versucht so anzuzeigen.
Daher sollte man in solchen Fällen immer den Quellcode-Editor benutzen. Den wählst Du ja in Deinen Kontoeinstellungen aus.

Joffm

 

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

Please Log in to join the conversation.

More
2 weeks 4 days ago - 2 weeks 4 days ago #274860 by Joffm
Nein es gibt keine "schönere" Lösung.

Diese Lösung ist geradeaus und wenig fehleranfällig.
Code:
<table class="table" style="width:60%">
    <tbody>
        <tr>
            <th style="width:30%">{Q0.question}</th>
            <th style="text-align:center;width:15%">Gegebene Antwort(en)</th>
            <th style="text-align:center;width:15%">Richtige Antwort</th>
        <tr>
            <td>{Q0_SQ001.question}</td>
            <td>
{if(Q0_SQ001=="Y",'<div class="form-check"><input class="form-check-input" type="checkbox"  checked disabled></div>','<div class="form-check"><input class="form-check-input" type="checkbox" disabled></div>')}
            </td>
            <td>
            </td>
        </tr>
        <tr>
            <td>{Q0_SQ002.question}</td>
            <td>
{if(Q0_SQ002=="Y",'<div class="form-check"><input class="form-check-input" type="checkbox" checked disabled></div>','<div class="form-check"><input class="form-check-input" type="checkbox" disabled></div>')}
            </td>
            <td>
            <div class="form-check"><input class="form-check-input" type="checkbox" checked disabled></div>
            </td>
        </tr>
        <tr>
            <td style="width:30%">{Q0_SQ003.question}</td>
            <td style="text-align:center;width:15%">
{if(Q0_SQ003=="Y",'<div class="form-check"><input class="form-check-input" type="checkbox" checked disabled></div>','<div class="form-check"><input class="form-check-input" type="checkbox" disabled></div>')}
            </td>
            <td style="text-align:center;width:15%">
            <div class="form-check"><input class="form-check-input" type="checkbox" checked disabled></div>
            </td>
        </tr>
    </tbody>
 
</table>

Und mit einem bisschen css werd ie auch zentriert
Code:
<style>
td .form-check {
  text-align:center;
}
td .form-check .form-check-input {
  float: none;
}
</style>



Natürlich kannst Du das IF auch einfach auf das "checked" anwenden; dies ist ja der einzige Unterschied. Allerdings gibt es hier - meiner Ansicht nach - zu viele Fehlermöglichkeiten durch die Anführungszeichenstruktur. Okay, hier ist es simpel.
Code:
        <tr>
            <td>{Q0_SQ003.question}</td>
            <td><div class="form-check"><input class="form-check-input" type="checkbox" {if(Q0_SQ003=="Y","checked",'')} disabled></div></td>
            <td><div class="form-check"><input class="form-check-input" type="checkbox" checked disabled></div></td>
        </tr>


Und Du kannst auch Variablen einsetzen; diese müssen natürlich vorher in einer Gleichung besetzt werden.
Z.B.
Code:
        <tr>
            <td>{Q0_SQ001.question}</td>
            <td><div class="form-check"><input class="form-check-input" type="checkbox" {ch01} disabled></div></td>
            <td></td>
        </tr>
        <tr>
            <td>{Q0_SQ002.question}</td>
            <td><div class="form-check"><input class="form-check-input" type="checkbox" {ch02} disabled></div></td>
            <td></td>
        </tr>
        <tr>
            <td>{Q0_SQ003.question}</td>
            <td><div class="form-check"><input class="form-check-input" type="checkbox" {ch03} disabled></div></td>
            <td><div class="form-check"><input class="form-check-input" type="checkbox" checked disabled></div></td>
        </tr>


Jetzt nimm das, was Dir am besten gefällt.

Joffm

P.S. Wie werden denn die "richtigen" Antworten bestimmt? Hart gecodet, oder wie?

 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 2 weeks 4 days ago by Joffm.

Please Log in to join the conversation.

More
2 weeks 15 hours ago #274884 by Mazi
Tolle Lösung @Joffm!
Damit sollte die Ausgabe ja schon wie gewünscht möglich sein.

@Balrog: Plant ihr auch noch eine Gesamtauswertung wie "Sie haben X von Y Fragen richtig beantwortet" einzublenden?

Was wir in anderen Projekten dann oft noch machen, ist eine Gegenüberstellung der Antworten des aktuellen Nutzers und seines Abschneidens mit allen vorherigen Umfrageteilnehmern. Das wird dann aber etwas komplexer und da man normalerweise aus Sicherheitsgründen innerhalb der aktuellen Umfragesession nicht auf Daten aus anderen Datensätzen zu dieser Umfrage zugreifen kann. Das lässt sich aber über ein Plugin bei Bedarf lösen.

Best regards/Beste Grüße,
Dr. Marcel Minke
survey-consulting.com
offlinesurveys.com
Feel free to contact me by email for professional LimeSurvey support!

Please Log in to join the conversation.

More
1 week 6 days ago #274893 by Balrog
Hallo zusammen, hallo joffm, 
ich nutze jetzt deinen ersten Lösungsvorschlag bzw. werde evtl. noch mit den Variablen rumprobieren. 

Einen Vergleich mit den Ergebnissen der anderen Teilnehmer machen wir nicht, ist auch nicht erwünscht. 

Vielen Dank nochmal für die perfekte Unterstützung!!

Please Log in to join the conversation.

Moderators: holchJoffmtpartner

Lime-years ahead

Online-surveys for every purse and purpose