Chart hent data

Tags:    jquery

<< < 12 > >>
Jeg forsøger at hente data fra et PHP script.

Men jeg kan ikke indsætte dataerne i en variable.. Min kode ser således ud:

Som et eksemple, kan jeg indsætte i chartdata fra selve scriptet:

[{device:'Safari',geekbench:136},{device:'Chrome',geekbench:137},{device:'IE',geekbench:275},{device:'Firefox',geekbench:380},{device:'Opera',geekbench:655},{device:'Android',geekbench:1571},{device:'iPhone',geekbench:655},{device:'Andet',geekbench:1571}]

Og det virker fint, men når jeg skal hente det virker det ikke...
Min PHP fil, er bare noget der echo'er overstående kode.

Fold kodeboks ind/udJScript kode 




15 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Den kode du lige har sendt her, er ikke den der giver det resultat i konsollen, som du viser på billedet (der er bl.a. ikke nogen console.log('success') i den viste javascript kode).

Desuden kalder den stadig initMorris uafhængigt af, om get-kaldet fuldføres. Som jeg skrev, så bliver du nødt til at sikre dig, at get-kaldet fuldføres først (for derved at have hentet chartdata) og derefter kalde Morris.bar-funktionen..

Hvis det ikke er muligt at gøre som jeg skrev pga. din return, så kan du lægge din ajax-funktion ind i initMorris funktionen, og flytte det der pt. står i initMorris ind i success-funktionen. Her er et nyt bud:

Fold kodeboks ind/udJScript kode 


Prøv at kopiere det direkte ind i stedet for den kode du har vist her.

--- edit

Og send gerne et nyt billede af din console, hvis der fortsat er fejl.



Indlæg senest redigeret d. 26.11.2014 08:54 af Bruger #4879
Vil du ikke kopiere hele din JavaScript kode ind her, som den ser ud lige nu?

Og kan jeg lokke dig til at tage et screenshot af resultatet i din console? Læg evt. op på https://billedeupload.dk/ - jeg vil gerne se det med selvsyn :--)



Hej Guides

Jeg tror din JSON er malformed. Så køres "success" ikke i din ajax-funktion.

Prøv at at valider den i http://jsonlint.com.
Mit bud:

[
{"device":"Safari","geekbench":136},{"device":"Chrome","geekbench":137},
{"device":"IE","geekbench":275},{"device":"Firefox","geekbench":380},
{"device":"Opera","geekbench":655},{"device":"Android","geekbench":1571},
{"device":"iPhone","geekbench":655},{"device":"Andet","geekbench":1571}
]

Tilføj "fail" funktion for at se, om du får en fejl.
Fold kodeboks ind/udJScript kode 




Indlæg senest redigeret d. 25.11.2014 20:20 af Bruger #4879
Jeg får følgende fejl i console:

"JSON Parse error: Expected '}'"

Ved ikke helt hvad det skal betyde?

Mit data er umiddelbart ikke forkert heller..



En JSON parser vil ikke godtage det data den får, fordi det ikke er korrekt formatteret som JSON. Jeg går ud fra, at det er parseren i ajax-funktionen.

Vil du ikke give lidt mere information omkring, hvad der udskrives, hvis du indsætter mit tilrettede script. Udskriver den test, done eller de 3 linjer i .fail-afsnittet?



Det er det eneste jeg modtager

Ellers kommer den med source:http://localhost/public/js/jquery.js
Men tror ikke det har nogen betydning ?



Ok. Vil du prøve at udskifte din funktion med følgende:

Fold kodeboks ind/udJScript kode 


og skrive outputtet her, præcist som du får det i consollen.



[Log] {device:'Safari',geekbench:136},{device:'Chrome',geekbench:137},{device:'IE',geekbench:275},{device:'Firefox',geekbench:380},{device:'Opera',geekbench:655},{device:'Android',geekbench:1571},{device:'iPhone',geekbench:655},{device:'Andet',geekbench:1571} (chart.js, line 19)

Jeg får success, men det er som om den data den printer ikke accepteret af mit chart script?

EDIT

Jeg forsøger at alert mit data output, efter jeg har sat chartdata = data;
Men den har ikke noget indhold, der kommer bare en tom alert.



Indlæg senest redigeret d. 25.11.2014 21:26 af Bruger #17509
prøv med den JSON code som Kristian Iversen viste 25.11.14 20:19 ??
den er valid og den virker




Den JSON du sender af sted er stadig forkert formatteret.

Jeg gav et forslag i mit første indlæg til, hvordan du kan gøre den valid.

Sæt device i double quotes (")
Ret dine single quotes til double quotes for værdierne (' => ")
Sæt geekbench i double quotes (")
Du skal have en samlet bracket omkring hele dit JSON ([])

Det skal være, så den data du får i loggen ser således ud i stedet:
[Log] [{"device":"Safari","geekbench":136},{"device":"Chrome","geekbench":137},{"device":"IE","geekbench":275},{"device":"Firefox","geekbench":380},{"device":"Opera","geekbench":655},{"device":"Android","geekbench":1571},{"device":"iPhone","geekbench":655},{"device":"Andet","geekbench":1571}] (chart.js, line 19)



<< < 12 > >>
t