Столбцы данных для оси # 0 не могут иметь строковую ошибку типа в диаграмме Google - PullRequest
4 голосов
/ 08 февраля 2012

Я попытался заполнить таблицу данных Google, доступную на стороне сервера, используя PHP. Я получил файл JSON правильно, но диаграмма не отображалась в клиентском приложении. Я получил ошибку- Столбцы данных для оси # 0 не могут иметь тип string . Моя кодировка ниже здесь.

После извлечения данных из базы данных,

$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);

Мой вывод 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"}]}
    ]
}

Как решить эту проблему?

Ответы [ 5 ]

10 голосов
/ 30 октября 2012

Чтобы расширить точный ответ @ sajal: измените последнюю строку кода с:

echo json_encode($table);

до:

echo json_encode($table, JSON_NUMERIC_CHECK);

Это скажет json_encode распознавать числа и не использовать их в кавычках (доступно с PHP 5.3.3.). http://php.net/manual/en/json.constants.php#constant.json-numeric-check

6 голосов
/ 25 февраля 2012

Вы указываете тип идентификатора пользователя в виде числа ... но передаете строку .. это вызывает проблему.

Я просто потратил 30 минут с противоположной проблемой ...

Ваш вывод 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"}]}
    ]
}
1 голос
/ 06 октября 2015

В вашей функции drawChart () вы, вероятно, используете google.visualization.arrayToDataTable, и это не допускает пустых значений.Пожалуйста, используйте функцию addColumn явно

1 голос
/ 08 января 2014

На BarChart один из столбцов (второй) должен быть числом.Это может вызвать это сообщение об ошибке.

0 голосов
/ 19 ноября 2017

Если формат данных должен быть таким:

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

, вы можете преодолеть эту ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...