0 votes
in SoSci Survey (dt.) by s107216 (250 points)

Hallo zusammen,

ich versuche einen Graph als Rückmeldung für Teilnehmende zu erstellen. Dazu habe ich die Mittelwerte über Items verschiedener Skalen berechnet und in je einer internen Variable gespeichert. Diese Werte der insgesamt 5 Skalen (enthalten in MF03_01 bis MF03_05) möchte ich jetzt als Graph anzeigen lassen.

Leider komme ich mit meinem Code (s.u.; oben php - Mitte html - unten php) nicht weiter. Haben sie eine Idee, was noch fehlt? Die Erklärungsseiten konnten das Problem bisher noch nicht lösen.

$data = array(
  value('MF03_01'),
  value('MF03_02'),
  value('MF03_03'),
  value('MF03_04'),
  value('MF03_05')
);
show('chart01', array(
  '%data%' => json_encode($data)
));

<!-- Container für das Diagramm -->
<canvas id="myChart" width="400" height="300"></canvas>
 
<script type="text/javascript">
<!--
 
var chartCanvas = document.getElementById('myChart').getContext('2d');
var chart01 = new Chart(chartCanvas, {
    type: 'line',
    data: {
        labels: %labels%,
        datasets: [{
            label: 'Ihr Wert',
            data: %data%,
            backgroundColor: '#FF9900',
            borderColor: '#FFCCAA',
            pointRadius: 8
        }]
    },
    options: {
        indexAxis: 'y',
        scales: {
            x: {
                beginAtZero: true
            }
        }
    }
});
 
// -->
</script>

// Bibliothek ChartJS verfügbar machen
library('ChartJS');
 
// Testdaten (hier würde man Daten aus dem Datensatz auslesen)
$labels = ['A', 'B', 'C', 'D', 'E'];
 
// Textbaustein mit dem HTML-Code für das Chart einbinden
show('TX09', [
  '%labels%' => json_encode($labels)
]);

Hier ein Preteslink zur Fragebogenseite:
https://survey.ifkw.lmu.de/MFQ/?act=T4oi1qckMjihE7eiCszg98lv

Viele Grüße

1 Answer

0 votes
by SoSci Survey (302k points)

Die JavaScript-Fehlerkonsole sagt:

Uncaught SyntaxError: expected expression, got '%'

Sie bezieht sich auf diese Zeile:

type: 'line',
    data: {
        labels: %labels%,   <<-- Diese hier
        datasets: [{
            label: 'Ihr Wert',

Das liegt wiederum daran, dass Sie in dem show()-Aufruf nur den %data%-Platzhalter ersetzen, nicht aber den %label%-Platzhalter:

show('chart01', array(
  '%data%' => json_encode($data)
));

Da würde also noch eine Zeile für die Labels im Array fehlen.

Allerdings zeigt der Fragebogen auch noch zwei Fehler, dass es weder den Baustein "chart01" noch "TX09". Es scheint also so, dass Sie im Fragenkatalog (in einer Rubrik Ihrer Wahl) noch keinen Text (Darstellung "HTML-Code") mit dem HTML-/JavaScript-Code angelegt haben.

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

...