When I use text in my call the report displays without issue.

*var data = google.visualization.arrayToDataTable([['Quarter', 'Current 
Enrollment','SBHC Enrollment','Patients Seen'],['Quarter 
1',1500,800,600],['Quarter 2',1450,840,700],*[*'Quarter 3'*
,1480,920,800]],false);
But when I use a variable which has the exact same text I get the following 
error and a blank screen.

*Uncaught (in promise) Error: Column header row must be an array.*

The variable is an array as I first parse it to text, clean off the ends 
(white space) and then put it into an array.  I test the array (is_array) 
and all is well. I output the array to the console.  I've even copied the 
console output and pasted it back into the arrayToDataTable and it works 
fine so I am at a loss for why this is not working.

Full code below:

<!DOCTYPE html>


*<?php*


*// ENROLLMENT BY YEAR*


  *include* *'../header.php'*;

  *include* *'../pdo.php'*;

  $siteid = $_GET[*'siteid'*];

  $year = $_GET[*'year'*];

  $year = date(*"Y"*); 

  $stmt = $pdo->prepare(*"select operatorid from sites where id = ?"*);

  $stmt->execute([$siteid]);

  $operatorid = $stmt->fetchColumn();

  $count= $stmt->rowCount();

  $stmt = $pdo->prepare(*"SELECT concat('Quarter ', quarter) as quarter, 
CONVERT(currentenrollment,UNSIGNED INTEGER) AS 
currentenrollment,CONVERT(currentpatients,UNSIGNED INTEGER) AS 
currentpatients, CO*$

  $stmt->execute([$siteid,$year]);


*?>*


<html>

<head>

<title>Enrollment</title>

<script type=*"text/javascript"* src=*"loder.js"*></script>


<script type=*"text/javascript"*>


google.load(*'visualization'*, *'1'*, {*'packages'*:[*'corechart'*]});

google.setOnLoadCallback(drawChart);


*function* drawChart() {


  var data = *new* google.visualization.DataTable();

  var jsonData = $.ajax({

    url: *"getEnrollmentData.php"*,

    data: {site:*<?php* *echo* $siteid*?>*,year:*<?php* *echo* $year*?>*} ,

    dataType: *"json"*,

    async: false

  }).responseText;



  mystring = jsonData.trim();

  mystring = mystring.substr(1);

  mystring = mystring.substring(0, mystring.length - 1);

  var myarray = *new* Array(mystring);

  console.log(*"'"+myarray+"'"*);

// The line below WORKS

*//var data = new google.visualization.arrayToDataTable([['Quarter', 
'Current Enrollment','SBHC Enrollment','Patients Seen'],['Quarter 
1',1500,800,600],['Quarter 2',1450,840,700],*

[*'Quarter 3'*,1480,920,800]],false);

// This line DOES NOT even though the data is the same as above.

  var data = *new*  google.visualization.arrayToDataTable([myarray]);

  var options = {

    chart: {

      title: *'Enrollment'*,

      subtitle: *'By Year'*,

      legend: { position: *'bottom'* },

      vAxis: {title: *'Quarter'*}

    }

  }


  var chart = *new* google.visualization.ColumnChart(document.
getElementById(*'areachart'*));

  chart.draw(data, options);

}


</script>


</head>

<body>

     <div id=*"areachart"* style=*"width: 1300px; height: 800px"*></div>


<div style=*"padding-left:300px"*>

Year&nbsp&nbsp;

<select name=*"cars"* id=*"year"*>


*<?php* 


  $stmt = $pdo->prepare(*"select distinct year from reportmedical where 
siteid = ? order by year desc"*);

  $stmt->execute([$siteid]);

  *foreach* ($stmt *as* $row) {

    *echo* *"<option value="* . $row[*'year'*] . *">"* . $row[*'year'*] . 
*"</option>"*;

  }

*?>*

</select>

</div>

</body>

</html>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-visualization-api+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-visualization-api/6020bb12-ae8d-45ff-a2ea-eb1bf0236f13n%40googlegroups.com.

Reply via email to