Hallo,
meine Frage, die ich im folgenden erläutere, schon einmal kurz genannt:
Ist es möglich ein Array zu erstellen, ohne das die einzelnen Positionen
mit Anführungszeichen "" abgetrennt werden? Ein String wird leider nicht
akzeptiert.
Nun zum Hintergrund:
ich übermittle mit einem PHP-Skript eine Json an ein Javascript-Skript.
Das klappt im Prinzip auch. Im JS-Skript wird dieses Json Array dann
aufgeteilt und für chart.js als Datensatz benutzt. Das klappt auch
super.
Die x-Achse von chart.js ist als "date" definiert, was die Datensätze
logischerweise zeitlich skaliert anordnet. Das klappt solange, wie es
exakt gleichviele x- wie y- Werte im Array gibt.
Da ich aber aus 3 verschiedenen Datenbanken Werte hole, die alle
verschiedene x-Werte (Zeit) besitzen, aber im gleichen Koordinatensystem
angezeigt werden sollen, wird das ganze etwas komplizierter.
Im Prinzip ist meine Frage:
der Bereich "data: xxx" von chart.js akzeptiert keinen String, der
vorher definiert wurde. Sondern nur direkt dort hingeschriebene Werte
oder Arrays.
Da es sich bei mir um sich dynamisch verändernde Daten handelt kommt
somit nur ein Array in Frage.
Dieses Format soll bei "data: " stehen, damit es klappt und ein Graph
angezeigt werden kann:
1 | [{x: "2020-05-13 12:00:00", y: 5}, {x: "...", y: 7}, {...}]
|
Das würde mit auch als Array mit allen Werten klappen, außer mit Date
Werten. Diese müssen nämlich in Anführungsstrichen stehen. Wenn ich
einen Array erstelle, werden aber alle Positionen des Array einzeln in
Anführungsstrichen gesetzt. Damit kommt chart.js dann aber nicht mehr
klar mit.
Ein Array sieht so aus, wenn er dynamisch und abhängig von der SQL
Abfrage erzeugt wird:
1 | "{x: "2020-05-13 12:00:00", y: 5}", "{x: "...", y: 7}", "{...}", ...
|
(Je nachdem, kommt vor die Anführungszeichen des Datums noch ein
Backslash \". Ändert aber am Problem im Prinzip nichts)
Natürlich geht das dann nicht.
Gibt es eine Möglichkeit, diese Anführungszeichen, die innerhalb eines
Arrays die einzelnen Positionen abtrennen, auszublenden?
Diese zerstören nämlich die geforderte Strunkturt. Und ich habe keine
Ahnung wie ich sonst dynamische Werte an chart.js übergeben soll. Denn
da ich verschiedene x-Werte habe, muss ich immer beide Werte als Paar
bei data: angeben.
Mit einem String wäre alles sehr einfach, aber den unterstützt chart.js
an dieser Stelle leider nicht...
Ich würde mich freuen wenn ihr mir vielleicht eine Idee geben könntet.
Denn ich würde wirklich gerne die verschiedenen Kurven in das gleiche
chart packen...