Indsæt data fra CSV-fil i JavaScript

Tags:    javascript

Hejsa,

Jeg har et stort problem idet jeg har en CSV-fil med nogle dataer ligesom følgende:

2010.05.01, 5,67
2010.05.02, 5,66
2010.05.03, 5,66
2010.05.04, 5,68
2010.05.05, 5,69
2010.05.06, 5,72
og så videre...

Det er dato og kurs på en valuta. Datoen og kursen skal jeg så have sat ind i et script (Master-detail chart fra Highcharts). Datoen skal indsætte i x-akslen, og kursen i y-akslen.

Koden som data fra CSV-filen skal bruges i ser sådan her ud:


Fold kodeboks ind/udKode 



Koden kan også ses ved at trykke "View Options" HER. I ovenstående kode er data lagt ind manuelt og hentes ikke via en CSV-fil.

Grunden til at jeg vil benytte en CSV-fil er at den vil indeholde kurser/data for adskillige år, samt den vil blive opdateret daglig med dagens sidste kurs fra Nationalbankens XML-feed.

Håber jeg kan få lidt meget hjælp, da jeg simpelthen ikke forstår hvad jeg skal gøre.

I et andet sample på siden kan jeg se et andet chart hvor de henter data ind fra en CSV-fil. Men jeg er simpelthen ikke i stand til at "kopier" teknikken til det sample jeg skal bruge.

Kan godt trække mine dataer ind i samme sample, selvom det ser lidt underligt ud da mine dataer ikke er beregnet til den type chart. Men kan ikke dublikere det til den chart jeg vil benytte - muligvis alene fordi jeg ikke fatter hvordan jeg får defineret dataerne fra CSV-filen ud i x- og y-akslen.

Se HER hvor de trækker data ud fra en CSV-fil og ind i scriptet. Benyt evt. vis kode.

Jeg vil være evigt taknemmelig, hvis jeg kan få lidt hjælp her så jeg kan løse problemet. Det skal lige siges at jeg stort set intet aner om JavaScript og at det nok også derfor er at jeg endnu ikke har kunne løse problemet - har siddet med det 3 dage nu.

På forhånd mange tak.



Indlæg senest redigeret d. 23.06.2010 21:43 af Bruger #11199
Hej Kim

Jeg tror din bedste mulighed er at gøre et af 2 ting.

1) Lav din "hovedside" i php/aspx/jsp (eller et andet serverside sprog) som så outputter din data i dit javascript.

2) Jeg har kigget lidt rundt på deres side med andre muligheder, og der er f.eks en der hedder "Ajax loaded data" som indeholder følgende property som du måske kan benytte dig af, dog kræver den også at du har noget serverside som kan sende output som JSON.

Fold kodeboks ind/udKode 




Hejsa Anders,

Ok, jeg har siddet lidt og boret lidt i det du er inde på og tror jeg er blevet lidt klogere.

Jeg skulle bruge chartet på en php/mysql side til at vise den historiske kurs mellem kroner og en anden valuta.

Da der kommer en ny kurs fra nationalbanken hver hverdag (ikke lørdag, søndag og andre helligdage), så havde jeg den idé at lave et CRON-job som lagde kursen ind i database én gang dagligt, og så lave et udtræk til en JSON-fil. Som så skulle kunne læses ind i scriptet.

Hvordan vil du anbefale at jeg bygger tabellen op i database til en dato og kurs ?

Først havde jeg jo tænkt på en opbygning ala denne:
2010.05.01, 5,67
2010.05.02, 5,66
2010.05.03, 5,66
2010.05.04, 5,68
2010.05.05, 5,69
2010.05.06, 5,72

Som jeg var inde på i indlæg 1, men det er måske en dum måde at gøre det på ? Vil det være bedre at gemme datoen med time eller microtime ?

Nu har jeg ikke rigtigt forstand på JSON, som er helt nyt for mig, så ved endnu ikke helt hvordan sådan en JSON-fil kan være opbygget - altså bortset fra det eksempel jeg har set HER.

Vil derfor også spørge om følgende kode som jeg har brugt til at lave CSV-filen kan omskrives nogenlunde let til at skrive en JSON-fil i stedet.
Fold kodeboks ind/udKode 


Undskyld de mange måske lidt tåbelige spørgsmål. Prøver at lære og forstå det samtidigt.



Indlæg senest redigeret d. 24.06.2010 18:26 af Bruger #11199
Hej Kim

Efter at havde læst dit indlæg i forgårs lavede jeg følgende stykke kode, for at se hvor besværligt det var at bruge.

Fold kodeboks ind/udPHP kode 


Jeg håber du måske kan bruge ovenstående til at blive lidt klogere, det kan også bruges som udgangspunkt til at lave dit cronjob som henter kurserne.

Mht. database struktur ville jeg nok vælge at lave en database der ser sådan ud:

Fold kodeboks ind/udKode 


Når du så skal hente det ud af databasen ville jeg gøre det på følgende måde.

Fold kodeboks ind/udPHP kode 


Og du behøver skam ikke undskylde de mange spørgsmål, det er jo den eneste måde man kan lære noget nyt.



t