views:

44

answers:

1

Hi there

I am attempting to use the highcharts javascript library to load charts using this function:

function create_chart(success, failed, pending)
{
    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'graph',
            margin: [5, 5, 5, 5]
        },
        title: {
            text: 'Message Sending Status'
        },
        plotArea: {
            shadow: null,
            borderWidth: null,
            backgroundColor: null
        },
        tooltip: {
            formatter: function() {
                return '<b>'+ this.point.name +'</b>: '+ this.y +' %';
            }
        },
        plotOptions: {
            pie: {
                allowPointSelect: true,
                dataLabels: {
                    enabled: true,
                    formatter: function() {
                        if (this.y > 5) return this.point.name;
                    },
                    color: 'white',
                    style: {
                        font: '13px Trebuchet MS, Verdana, sans-serif'
                    }
                }
            }
        },
        legend: {
            layout: 'vertical',
            style: {
                left: 'auto',
                bottom: 'auto',
                right: '50px',
                top: '100px'
            }
        },
        series: [{
                type: 'pie',
                name: 'Message Status',
                data: [
                    ['Successful Messages',   success],
                    ['Failed Messages',       failed],
                    ['Pending Messages',       pending]
                ]
            }]
    });
}

however this locks the browser up

i have narrowed down the problem to

data: [
   ['Successful Messages',   success],
   ['Failed Messages',       failed],
   ['Pending Messages',       pending]
]

as if i use numbers in place of the variables (i.e replace success with 12 ect) then it works fine

this is confusing as using console.log(success) returns 12, so what could be causing this?

A: 

try

data: [
   ['Successful Messages',   success - 0],
   ['Failed Messages',       failed - 0 ],
   ['Pending Messages',      pending - 0]
]

lets see if this does a thing...

Reigel
hmm, works perfectly, what could be causing this?(will accept your answer as soon as possible)
Hailwood
I think the problem is that those variables are holding string type... so convert it to integer type, we subtract 0... when you call `create_chart(success, failed, pending)`, did you put quotes on it's parameter?
Reigel
Ah i see, i thought javascript was loosely typed?
Hailwood
yes, a loosely type... but it's not the JS' fault here... maybe there is a type checking in the plugin, making sure to accept only numbers and not strings..
Reigel