谷歌图表:未捕获错误:第0行有1列,但必须有2列
Google Charts: Uncaught Error: Row 0 has 1 columns, but must have 2
我有以下javascript代码:
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
[' ', 'Systol','Diastol'],
[' ', <?php echo "$present_sys" ?>,<?php echo "$present_dia" ?>]
]);
var data2 = google.visualization.arrayToDataTable([
[' ', 'weight'],
[' ', <?php echo "$present_wt" ?>]
]);
var data3 = google.visualization.arrayToDataTable([
[' ', 'SpO2'],
[' ', <?php echo "$pulse_rate" ?>]
]);
var data4 = google.visualization.arrayToDataTable([
[' ', 'PEF','FEV1'],
[' ', <?php echo "$PEF" ?>,<?php echo "$FEV1" ?>]
]);
这个问题很奇怪。。发生的情况是,我选择了某些类型的数据,图表确实有效,但我选择了另一条记录,我得到了以下错误:未捕获错误:第0行有1列,但必须有2列。这就是为什么谷歌图表可以使用某些数据,而某些数据则无法使用的原因。
感谢
退出您的输入。使用json_encode
对进入JavaScript的变量进行转义,就像使用htmlspecialchars
对进入HTML的值进行转义一样。
对于某些值,您的脚本将破坏:
$bar = '"3","4"';
?>
[ '', <?php echo $bar;?> ];
<?php
会给你:
[ '', "3", "4" ] // 3 columns!
如果使用json_encode
:
[ '', <?php echo json_encode($bar);?> ];
你会得到:
[ '', "'"3'", '"4'"" ] // 2 columns
此外,这两种说法在功能上是等效的:
echo $bar;
echo "$bar";
echo "$bar"
之所以有效,是因为PHP解释字符串并找到匹配的变量。如果不小心使用,这种形式可能非常危险。
此错误可能是由于行尾字符的问题,使PHP和/或arrayToDataTable认为标头下方有空行。在编辑器中检查/修复您的数据文件,该编辑器可以显式显示/转换Unix/Linux风格(LF)、Mac风格(CR)和Windows风格(CR LF)之间的行结尾。当在具有不同行尾类型的系统上创建/编辑数据文件时,可能会出现类似的情况。
来源:我在Excel for Mac上创建了一个CSV文件,收到了同样的错误消息"Row 0 has 1 columns…"(用jquery CSV读取它,并通过arrayToDataTable将其输入google viz)。当我在Excel for Windows中打开该文件时,每隔一行就会显示为空。删除空行并从Excel for Windows中保存解决了此问题。
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如何在Google柱状图中动态添加行/列
- CSS表格:从列平移到整个表格宽度
- 具有rowGrouping的数据表无法隐藏列
- Datatables:通过DOM数据源中的名称引用列
- Angular-表的多列过滤器
- Telerik rad组合框多列数据绑定
- 引导程序/基础堆叠行/列
- 从单击的行上的列中获取数据
- 每列 2 列的挖空
- javascript中具有重复列的列排序
- 剑道 UI 网格、添加列和列总和值
- 从同一行中获取最接近复选框列的列的 html 值
- 如何为列设置列切换表小部件的默认值
- 包含图标的数据表,不根据其他列对列进行排序
- 更改与
列基于列的值与javascript - 根据JQGrid中的其他列计算列的值
- 使用“where"”中的连接表中的列续列中的条款
- 如何在不使用固定大小的情况下创建两列(一列有两行,另一列有一行)
- jQuery 数据表查找最后一行,并从第一列(隐藏列)获取数据