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

0 votes

Bei der Nutzung des neuen Fragetyps "Zeichenfläche" würde ich gerne mehrere Zeichenflächen platzieren und bei Verlassen der Seite als Rückgabewert speichern, wie viele der Zeichenflächen befüllt worden sind.
Dabei wäre es vermutlich notwendig, zwischen "weiter zum nächsten Motiv" und "weiter zur nächsten Seite" zu unterscheiden, so dass erst bei Wechsel auf die nächste Seite die Anzahl der gespeicherten Motive gezählt wird.
Wie kann man das am Besten umsetzen?

in SoSci Survey (dt.) by s057478 (145 points)
Fangen wir einmal mit den mehreren Zeichenflächen an.

Könnten Sie bitte mal 4 Fragen "Einfache Zeichenfläche" anlegen und mit dieser Anleitung in einer 2x2 Tabelle platzieren: https://www.soscisurvey.de/help/doku.php/de:create:table-layout

Vorsicht - auf dem Smartphone wird das dann nicht sauber auf eine Seite passen. Wenn Sie Smartphone-Teilnehmer erwarten, müssten wir für die Platzierung ein Flexbox-Design verwenden.

Wenn das geklärt un umgesetzt ist, sehen wir uns den nächsten Schritt an.

Alternativ könnten Sie natürlich darüber nachdenken, einfach 4 Seiten mit jeweils einer Zeichenfläche zu bauen und den Knopf immer "Weiter zum nächsten Motiv" zu nennen. Außerdem würden Sie dann noch einen Knopf "Fertig" einbauen, der zu einer Seite ohne weitere Zeichenfläche springt.
Die Platzierung habe ich angelegt: https://www.soscisurvey.de/preferLU2019/?act=d5lkcPSSvjW77P0w6ilItPkW,
aber auch mal mit Flexbox versucht: https://www.soscisurvey.de/preferLU2019/index.php?i=Z2EF4YUK8ZAM&rnd=RTHH, denn das wäre mir das allerliebsten. Das sieht aber noch wüst aus, weil ich die Zeichenflächen nicht in die Container kriege.

Die Einzelseitenlösung finde ich nicht so gut, denn im Original Paper- u. Pencil-Bogen stehen sie auch auf einer Seite bereit.
Das mit dem Flexbox funktioniert nicht, weil Sie <p>-Elemente verwenden. Aber diese dürfen nur Text enthalten, keine Zeichenflächen o.ä.
Hab es nun mit <div> und der .col-Klasse versucht, kriege es aber leider nicht hin :-(

1 Answer

0 votes

Die Einzelseitenlösung finde ich nicht so gut, denn im Original Paper- u. Pencil-Bogen stehen sie auch auf einer Seite bereit.

Gutes Argument.

Wenn Sie die Zeichenfläche-Fragen erneut anlegen (ich habe die Vorlage nochmal ein Stück erweitert), und die folgende Zeile entfernen...

<button type="button" id="%q.id%btnSend">Fertig, Weiter</button>

... dann kümmert sich die Frage nun darum, dass beim "Weiter" die Daten übermittelt werden. Das funktioniert explizit auch mit mehreren solchen Fragen pro Seite.

by SoSci Survey (53k points)
Super, das funktioniert schon mal soweit, wenn es auch nicht responsive-designed ist ;-) (s.o.) Nun wäre es schön, wenn je befüllte Fläche die Werte addiert und durch 2 genommen werden könnten (denn es wird ja der Wert 2 vorgegeben). Dann hätte ich die Anzahl der befüllten Flächen...
Das mit dem Flexbox/responsive sollte wirklich noch machbar sein - Sie haben da noch so ein komisches "col-md-6" im Code. Das scheint mir überflüssig. Und auch die Konstruktion außenherum ist etwas unhandlich. Eigentlich brauchen Sie nur ein

<div style="display: flex; flex-wrap: wrap;">
<div style="flex: 1 0 300px">

Dann die erste Frage, zwischen den Fragen dann

</div>
<div style="flex: 1 0 300px">

Und am Ende

</div>
</div>

Das mit dem zählen ist auch recht einfach:

$anzahl = (value('T201') == 2) + (value('T202') == 2) + (value('T203') == 2) + (value('T204') == 2);

Mit valueSum() ginge es auch kompakter, aber ich denke, dieser Code tut es :)
Danke für die Tipps :-), mit den obigen Hinweisen konnte ich die Flächen sauber positionieren: https://www.soscisurvey.de/preferLU2019/index.php?i=D2AE4O47NVIS&rnd=OWHP allerdings brechen sie dann nicht bei kleinerem Bildschirm um.

Also habe ich es noch mit dem Wrapper probiert: https://www.soscisurvey.de/preferLU2019/index.php?i=UV0S9G9A7YY9&rnd=XVBY. Das funktioniert zwar grundsätzlich, aber da die umgegebene Seite sich nicht anpasst, wäre es günstig, wenn ich die Zeichenflächen dann links ausgerichtet bekäme. Die Reihenfolge der Flächen ist auch noch nicht korrekt. Das muss ich mir morgen nochmals anschauen. Aber das ist ja eher "nice to have",

Mit dem Zählen bin ich aber noch nicht ganz klar: Irgendwo muss die Summe ja noch übergeben werden, damit sie in der Auswertung erscheint. Was muss ich dafür noch tun?
Nun, was das automatische Skalieren angeht: Ihr Fragebogen-Layout unterstützt das nicht. Ich hoffe, Sie haben kein (halbwegs) aktuelles SoSci-Layout als Basis verwendet? Damit es skaliert, müssten Sie in div.questionary das "width" durch "max-width" ersetzen. Dann klappt es auch mit dem flex.

> Mit dem Zählen bin ich noch nicht ganz klar: Irgendwo muss die Summe ja noch eingetragen werden

Wenn Sie den Wert im Datensatz haben möchten (und nicht nur z.B. für einen Filter benötigen), dann verwenden Sie einfach eine interne Variable und put(), (s. Anleitung zu put()):

put('IV01_01', $anzahl);
Freude: das mit dem Skalieren hat schon mal auf Anhieb geklappt. Das mit dem "Put" wird mit der Anleitung sicher auch funktionieren. Da ich die nächsten Tage unterwegs bin und erst vermutlich erst nächste Woche dazu komme, das auszutesten, bedanke ich mich schon mal für die professionelle Unterstützung!
Als Dankeschön versuche ich mich demnächst mit einer Anleitung zu dem Thema "responsive Zeichenflächen" zu revanchieren...
> Als Dankeschön versuche ich mich demnächst mit einer Anleitung zu dem Thema "responsive Zeichenflächen" zu revanchieren...

Das wäre klasse, danke!
Leider klappt es mit der "Put"-Variable noch nicht ganz. Ich habe folgenden Code von oben verwendet:
$anzahl = (value('T201') == 2) + (value('T202') == 2) + (value('T203') == 2) + (value('T204') == 2);
put('T205_01', $anzahl);

In der erhobenen Zeile steht dann leider als Summe nur eine Null:
2     T201.000552.png |    2     T202.000552.png     | 2     T203.000552.png     | 2     T204.000552.png     | 0

Wo liegt der Fehler?

P.S.: Pretest-Link: https://www.soscisurvey.de/preferLU2019/?act=XZt68HCZ69PiGjjBdzgkIIR5
Was zeigt denn bitte die Debug-Information auf der Seite mit dem Summen-Code? https://www.soscisurvey.de/help/doku.php/de:create:debugging
Das hier auf Seite 21 vor dem Absenden:
 
[Information]    Interview gestartet (neue Nummer 563)
[Information]    Der Fragebogen base im Projekt preferLU2019 wird verwendet
[Verarbeitung]    Erstelle Fragebogen-Seite Nr. 21
[Information]    value("T201") = ""
[Information]    value("T202") = ""
[Information]    value("T203") = ""
[Information]    value("T204") = ""
[Information]    Die interne Variable T205_01 wird mit dem Wert 0 belegt.
[Inhalt]    Erstelle Frage T205
[Inhalt]    Erstelle Frage T201
[Inhalt]    Erstelle Frage T202
[Inhalt]    Erstelle Frage T203
[Inhalt]    Erstelle Frage T204

und das hier auf Seite 22 nach dem Absenden bei 4 vollgemalten Flächen:
[Information]    Interview Nummer 563 wird fortgesetzt
[Information]    Der Fragebogen base im Projekt preferLU2019 wird verwendet
[Verarbeitung]    Lese Antworten von Seite 21
[Information]    Die Verweildauer auf Seite 21 war 219 Sekunden
[Information]    Antwort auf T205_01 = 0
[Information]    Antwort auf T201 = 2
[Information]    Antwort auf T201x02 = T201.000563.png
[Information]    Antwort auf T202 = 2
[Information]    Antwort auf T202x02 = T202.000563.png
[Information]    Antwort auf T203 = 2
[Information]    Antwort auf T203x02 = T203.000563.png
[Information]    Antwort auf T204 = 2
[Information]    Antwort auf T204x02 = T204.000563.png
[Information]    Fragen bisher zu 100% vollständig beantwortet
Jede Antwort soll im Endeffekt mit dem Wert 1 gezählt und dann addiert werden.
...