Data column(s) for axis #0 cannot be of type string error in google chart

匿名 (未验证) 提交于 2019-12-03 02:27:02

问题:

I tried to populate google chart datatable in server side using PHP.I got JSON file properply, but the Chart not display in client Application. I got error-Data column(s) for axis #0 cannot be of type string . My coding is below here.

After fetching data from database,

$colarray=array(array("id"=>"","label"=>"userid","pattern"=>"","type"=>"number"),array("id"=>"","label"=>"name","pattern"=>"","type"=>"string"));    $final=array();     for($i=0;$i<$rows;$i++)      {      $id[$i]=pg_fetch_result($res1,$i,'id');      $name[$i]=pg_fetch_result($res1,$i,'name');      $prefinal[$i]=array("c"=>array(array("v"=>$name[$i]),array("v"=>$name[$i])));      array_push($final,$prefinal[$i]);     }       $table['cols']=$colarray;     $table['rows']=$final;     echo json_encode($table); 

My Output Json:

{   "cols":[     {"id":"","label":"userid","pattern":"","type":"number"},     {"id":"","label":"name","pattern":"","type":"string"}    ],   "rows":[     {"c":[{"v":"101"},{"v":"Aircel"}]},     {"c":[{"v":"102"},{"v":"Srini"}]},     {"c":[{"v":"103"},{"v":"Tamil"}]},     {"c":[{"v":"104"},{"v":"Thiyagu"}]},     {"c":[{"v":"105"},{"v":"Vasan"}]},     {"c":[{"v":"107"},{"v":"Senthil"}]},     {"c":[{"v":"108"},{"v":"Sri"}]},     {"c":[{"v":"109"},{"v":"Docomo"}]},     {"c":[{"v":"106"},{"v":"Innodea"}]}     ] } 

How to solve this issue?

回答1:

You specify type of userid as number... but pass string.. thats causing the problem.

I just wasted 30 mins with the opposite problem ...

Your output json should look like :-

{   "cols":[     {"id":"","label":"userid","pattern":"","type":"number"},     {"id":"","label":"name","pattern":"","type":"string"}    ],   "rows":[     {"c":[{"v":101},{"v":"Aircel"}]},     {"c":[{"v":102},{"v":"Srini"}]},     {"c":[{"v":103},{"v":"Tamil"}]},     {"c":[{"v":104},{"v":"Thiyagu"}]},     {"c":[{"v":105},{"v":"Vasan"}]},     {"c":[{"v":107},{"v":"Senthil"}]},     {"c":[{"v":108},{"v":"Sri"}]},     {"c":[{"v":109},{"v":"Docomo"}]},     {"c":[{"v":106},{"v":"Innodea"}]}     ] } 


回答2:

To extend on @sajal's accurate answer: Change the last line of your code from:

echo json_encode($table); 

to:

echo json_encode($table, JSON_NUMERIC_CHECK); 

This will tell json_encode to recognize numbers and abstain from wrapping them in quotes (Available since PHP 5.3.3.). http://php.net/manual/en/json.constants.php#constant.json-numeric-check



回答3:

In your drawChart() function, you are probably using google.visualization.arrayToDataTable, and this does not allow any nulls. Please use addColumn function explicitly



回答4:

On a BarChart, one of the columns (the second one) has to be a number. That can cause this error message.



回答5:

If the Data format should be like:

data: [     ["string", "string"], //first Column     ["string1", number],     ["string2", number],     ["string3", number], ] 

then you can overcome this error.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!