Wir möchten für eine Teilnehmer-Live-Auswertung auf der letzten Seite gerne einen Berechneten Wert zwischen -24 bis +24 als Balkendiagramm darstellen, da die Darstellung mit der Grafik (responseSD) nicht responsive ist und bei mobilen Darstellungen unpraktisch ist.
Wir haben also die Variable berechnet, dann ist hier noch der alte Code für eine z-Transformation und Ausgabe als Text.
Ich dachte ich kann durch das abspeichern über eine Interne Variable vielleicht das Balkendiagramm programmieren - hat aber leider nicht geklappt.
// Definition der Fragen und der Werte möglicher Antworten
$fragen = array(
'SL01' => array(1 => 2, 2 => -1, 3 => 1, 4 => -2),
'SL02' => array(1 => 2, 2 => -2, 3 => 1, 4 => -1),
'SL03' => array(1 => 1, 2 => -1, 3 => -2, 4 => 2),
'SL04' => array(1 => 1, 2 => -2, 3 => 2, 4 => -1),
'SL05' => array(1 => -2, 2 => 1, 3 => 2, 4 => -1),
'SL06' => array(1 => -1, 2 => 1, 3 => -2, 4 => 2),
'SL07' => array(1 => -2, 2 => 2, 3 => -1, 4 => 1),
'SL08' => array(1 => 2, 2 => -1, 3 => -2, 4 => 1),
'SL09' => array(1 => -2, 2 => 1, 3 => 2, 4 => -1),
'SL10' => array(1 => 1, 2 => -2, 3 => -1, 4 => 2),
'SL11' => array(1 => -2, 2 => 2, 3 => -1, 4 => 1),
'SL12' => array(1 => -1, 2 => 2, 3 => -2, 4 => 1));
// Zähl-Variable initialisieren
$points = 0;
// Mittels foreach kann man einfach die Schlüssel-Wert-Paare durchlaufen
foreach ($fragen as $variable => $values) {
// Antwort des Teilnehmers abrufen
$answer = value($variable);
// Prüfen, ob für diese Antwort ein Wert vorliegt (sonst keinen Punkt vergeben)
if (isset($values[$answer])) {
// Zählen des Wertes
$points += $values[$answer];
}
}
// z-Transformation
$zPoints = ($points)/8;
// Filter extreme values
if ($zPoints < -3) {
$zPoints = -3;
}
if ($zPoints > 3) {
$zPoints = 3;
}
// Use textblocks (only if $value delivered a valid value)
if ($points > -25) {
text('responseSD', array(
'%title%' => 'Your Style Adjustment Result',
'%z-value%' => $zPoints
));
}
{html('<br><center>You got <b>'.$points.' points</b> in a range of -24 to +24 points.</center></b>
<p><b>Style Adjustment</b> means the appropriateness of your given answers in the questionnaire.<p><br></p><p><br></p>');}
put('IV01_01', $points);
html('
diagram('percent', 'IV01_01'));
Was mach ich falsch, bzw. wie kann ich den Wert in einem Balkendiagramm möglichst responsive und für Handy-Fragebogen-Bearbeiter handhabbar programmieren?