0
votes

All I want is to be able to add this simple PHP array to display in the X axis. It's not wanting to display my content at all and I'm not understanding why.

<!DOCTYPE HTML>
<html>
    <head>
        <?php 
        $array = array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
        ?>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Highcharts Example</title>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"type="text/javascript"></script> 
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script type="text/javascript">


$(function () {
    js_array = new Array(<?php echo json_encode($array) ?>);
        $('#container').highcharts({
            title: {
                text: 'Monthly Average Temperature',
                x: -20 //center
            },
            subtitle: {
                text: 'Source: WorldClimate.com',
                x: -20
            },
            xAxis: {
                categories: js_array
            }
5
won't solve your problem, but you should use [] instead of new Array - the latter creates an unneeded object wrapper - user428517
Try js_array = JSON.parse('<?php echo json_encode($array) ?>'); - user1477388
I'm getting no luck with that. I'm still getting a blank screen. - Tabias
did you check the error log? - user428517

5 Answers

4
votes

We seem to be overcomplicating matters here...

change this:

           js_array = new Array(<?php echo json_encode($array) ?>);

           ...

           xAxis: {
                categories: js_array
            }

to this:

xAxis: {
   categories: <?php echo json_encode($array); ?>
}
1
votes

Try this.

var js_array = <?php echo json_encode($array); ?>;
0
votes

An JSON Object is not the same as an js array. You would need to parse the code first. JSON.parse() or eval() might help parsing.

js_array = JSON.parse('<?php echo json_encode($array) ?>'); 

as @user1477388 commented correctly

0
votes
0
votes

it worked with me like this:

for categories :

categories: [<?php for($i = 0; $i < count($name); $i++){ echo "'".$name[$i]."'"; echo ",";} ?>],

for data:

data: [<?php echo join($age, ',') ?>]

Note that $name is a string array and $age is an integer array. Also keep in mind that this code worked with me when I imbedded the php,Sql query in the same page.