John Doe John Doe - 1 year ago 119
PHP Question

Quoting PHP Variable inside PHP Variable for Javascript Donut Chart

I'm having a bit of a difficult time today with passing some PHP variables over to Javascript for a Donut chart. I've been messing with this for a good while now and haven't been able to figure it out yet, I've checked through posts on here as well as numerous google searches but haven't been able to find the answer yet. Here's what I'm trying to accomplish:

I'm trying to push data from MySQL to a Javascript Donut chart for web referrers to a specific PHP page. The syntax for the Javascript chart is as such:

element: 'css div',
{ label: '<?php echo($graph["referrer"]); ?>', value: '<?php echo($graph["chart"]); ?>' },

The $graph['referrer'] variable holds a referrer name such as "", and the $graph['count'] variable holds the corresponding record count for the referrer name as a number, such as "5".

The Javascript line that starts with "{label" denotes one part of the Donut chart. Initially the data pulled from MySQL is done so with fetchArray(), what I am trying to do is to generate each "{label" line using a PHP foreach statement (eg. foreach($Array as $graph)) so that the graph can be generated dynamically based on the number of referrer names returned by fetchArray(). I've tried pretty much everything I can think of to make this work - storing the entire Javascript line in PHP and then echoing it out to Javascript, etc. But it always causes an internal error with PHP.

I'm sure the answer is right under my nose, thank you all for your time.

Answer Source

Use json_encode() to generate a clean data object:

in PHP:

$data = array( array( 'label' => $graph["referrer"] ), 'value' => $graph["chart"] ) );

in your JavaScript;

data: <?php echo json_encode($data); ?>
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download