0 votes
in SoSci Survey (dt.) by s254248 (200 points)

Guten Tag,

ich möchte gerne ein Charakterprofil der Befragten erstellen und den Teilnehmenden direkt ausgeben lassen.
Dazu werden mehrere Fragen mit einer Likert-Skala gestellt, mit denen sich die Befragten selbst einschätzen sollen.
Mit den Fragen sollen die Charaktereigenschaften wie z.B. Teamfähigkeit ermittelt bzw. beurteilt werden. Jede Eigenschaft wird von mehreren Fragen abgedeckt. Zum Beispiel gibt es für die Eigenschaft Teamfähigkeit zwei Fragen, bei denen sich die Befragten mit einer 5 stufigen Skala von Trifft überhaupt nicht zu bis Trifft voll zu selbst einschätzen sollen.

Je nachdem wie sich der Befragte einschätzt soll dann eine persönliche Auswertung erfolgen. Dabei soll einerseits eine visuelle Darstellung (wie hier gezeigt https://www.soscisurvey.de/help/doku.php/de:create:feedback-visual) abgebildet werden und andererseits auch je nach Punktzahl ein anderer Auswertungstext erscheinen.

Kann mir jemand zeigen, wie ich dies umsetzen kann?

Viele Grüße

by SoSci Survey (327k points)
Was möchten Sie denn genau wissen, was über die Anleitung hinaus geht?
by s254248 (200 points)
Ich bekomme es mithilfe der Anleitung nicht umgesetzt.
Habe versucht es testweise mit einer Frage zu testen. Die Frage besteht aus einer 5-stufigen Skala. Nun wollte ich, dass wenn die erste Stufe ganz links gewählt wurde, der Marker auf der Auswertungsskala (visueller Balken) ganz links angezeigt wird. Dies hat jedoch nicht funktioniert und ich bin mir nicht sicher, woran dies liegt.
by SoSci Survey (327k points)
Dann posten Sie doch bitte einen Pretestlink direkt zu der Seite mit der Skala, dann sehen wir und das gerne einmal an. Eventuell stimmt nur eine Kleinigkeit mit den Berechnungen nicht, sodass die Anzeige einfach außerhalb des Bildschirms landet. Posten sie gerne auch Ihren PHP-Code, den Sie verwenden.
by s254248 (200 points)
Ich habe den Link und die Codes als Antwort gepostet.
Wie man sehen kann geht der Marker auf dem Balken nicht weiter als die Mitte (also wenn man die fünfte Stufe wählt, wird der Marker in der Mitte platziert. Ich möchte aber, dass er ganz rechts angezeigt wird)

2 Answers

0 votes
by s254248 (200 points)

Hier ist der Link zum Pretest
https://www.soscisurvey.de/testumfrage2024/?act=Y5P65KhclfsGwFMFSRYl4Xl6

Hier der PHP Code, TE03 ist die Frage

    // Wert/Ergebnis ermitteln
$value = valueMean('TE03');
// z-Transformation
$zValue = ($value - 5) / 2.8;
// Extremwerte filtern
if ($zValue < -3) {
  $zValue = -3;
}
if ($zValue > 3) {
  $zValue = 3;
}
// Textbaustein verwenden (nur, wenn $value einen gültigen Wert geliefert hat)
if ($value > 0) {
  show('TE04', array(
    '%title%' => 'Extraversion',
    '%zValue100%' => (string)round($zValue * 100)
  ));
}

Und Hier der HTML Code

<!-- Überschrift für die Abbildung -->
<div class="title" style="text-align: center">%title%</div>
 
<div style="position: relative">
  <!-- Die Skala liegt im Hintergrund -->
  <div style="margin: 0 auto; width: 400px; height: 25px; background-image:url('ofb://slider.scale.sd-blue400S')">
      <!-- Zur Platzierung der Markierung wird eine Einheit (Bereich 0 bis 1) als Blockelement platziert -->
      <div style="position: absolute; top: -2px; left: 50%; width: 65px; height: 27px">
        <!-- Die eigentliche Markierung wird an der richtigen Stelle eingefügt -->
        <img src="ofb://slider.button.rhomb" alt="" style="position: absolute; left: %zValue100%%; margin-left: -8px" />
      </div>
  </div>
</div>
by SoSci Survey (327k points)
Fangen wir einmal damit an, dass die Markierung nicht bis ganz links wandert. Dafür ist die folgende Zeile verantwortlich. Dieser Code ist exemplarisch für eine Verteilung mit dem Mittelwert 5 und einer Standardabweichung von 2,8 ausgelegt.

$zValue = ($value - 5) / 2.8;

Wenn Sie einfach nur den Wertebereich 1 bis 5 abbilden möchten, dann können Sie diesen entweder auf den Bereich -3 bis +3 (dafür ist der HTML-Code ausgelegt) transformieren, also

$zValue = ($value - 3) * 1.5;

oder Sie transformieren auf 0 bis 1

$zValue = ($value - 1) / 4;

und passen dann den HTML-Code an.

<!-- Zur Platzierung der Markierung wird eine Einheit (Bereich 0 bis 1) als Blockelement platziert -->
<div style="position: absolute; top: -2px; width: 400px; height: 27px">
by s254248 (200 points)
Vielen Dank! Das hat mir extrem weitergeholfen.
Ich hätte noch eine Frage: Ist es möglich auch eine Skala mit Schieberegler, der von 0% bis 100% geht, so auszuwerten?
0 votes
by s254248 (200 points)

Ich habe nun ein neues Problem.

Ich habe im HTML Code ganz am Ende einen neuen Platzhalter eingefügt, damit dort ein Text angezeigt wird. Der Text hängt von dem Wert ab, den die Skala anzeigt.

Nun habe ich das Array wie folgt erweitert:

if ($values > 0) {
  show('AU03', array(
    '%title%' => 'Titel',
    '%zValue100%' => (string)round($zValue * 100),
	'%zValueText%' => show($textNew)
  ));
  }

In der Variable $textNew wirdje nach Wert der Skala die Bezeichnung eines Textelements gespeichert.
Wenn ich dies nun so ausführe, wird der Text über der Skala angezeigt und der Platzhalter gibt [NULL] aus.

Hier der HTML Code:

<!-- Überschrift für die Abbildung -->
<div class="title" style="text-align: center">%title%</div>
 
<div style="position: relative">
  <!-- Die Skala liegt im Hintergrund -->
  <div style="margin: 0 auto; width: 400px; height: 25px; background-image:url('ofb://slider.scale.sd-blue400S')">
      <!-- Zur Platzierung der Markierung wird eine Einheit (Bereich 0 bis 1) als Blockelement platziert -->
      <div style="position: absolute; top: -2px; left: 50%; width: 65px; height: 27px">
        <!-- Die eigentliche Markierung wird an der richtigen Stelle eingefügt -->
        <img src="ofb://slider.button.rhomb" alt="" style="position: absolute; left: %zValue100%%; margin-left: -8px" />
      </div>
  </div>
</div>

<p style="text-align: center">%zValueText%</p>

Wie kann ich dieses Problem lösen?

by SoSci Survey (327k points)
> Ich habe nun ein neues Problem.

So was künftig am besten als neue Frage posten - sonst wird es hier schnell unübersichtlich.

Im Moment haben Sie unterhalb der Grafik einen Absatz eingefügt, in welchem der $textNew zentriert angezeigt wird oder werden sollte. Ist das nicht der Fall? Im Pretest-Link sehe ich nichts von dem Absatz.

> und der Platzhalter gibt [NULL] aus.

Das liegt daran, dass Sie da ein show() verwenden, das muss raus. show() zeigt eine Frage an. Korrekt wäre:

'%zValueText%' => $textNew

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

...