在 php 数据表中添加 属性 用于 google 图表自定义 html 工具提示
Adding property in php datatable for google chart custom html tooltips
我正在尝试通过将它们添加到数据表中来在我的 google 图表中创建自定义 html 工具提示,现在我的数据表正在 PHP 中创建,如下所示:
$datatable = array('cols' => array(
array('type' => 'string', 'role' => 'domain', 'label' => 'Month'),
array('type' => 'string', 'role' => 'tooltip'),
array('type' => 'string', 'role' => 'domain', 'label' => 'Omzet'),
array('type' => 'number', 'label' => 'Omzet '.$jaar),
array('type' => 'number', 'label' => 'Omzet '.($jaar-1)),
array('type' => 'string', 'role' => 'domain', 'label' => 'Aantal'),
array('type' => 'number', 'label' => 'Aantal '.$jaar),
array('type' => 'number', 'label' => 'Aantal '.($jaar-1))
));
并像这样填充:
$datatable['rows'][] = array('c' => array(
array('v' => $monthname),
array('v' => '<h1>custom</h1> tooltip '.$monthname),
array('v' => 'Omzet '.$monthname),
array('v' => $row['totaal']),
array('v' => $omzet),
array('v' => 'Aantal'),
array('v' => $row['aantal']),
array('v' => $aantal)
));
但是对于您可以在 Javascript 中为 google 图表指定的数据表,您必须添加类似
的内容
dataTable.addColumn({'type': 'string', 'role': 'tooltip', 'p': {'html': true}});
否则工具提示将以纯文本而不是 html 标记的形式出现
https://developers.google.com/chart/interactive/docs/customizing_tooltip_content#customizing-html-content
这意味着我将不得不以某种方式将 'p' : { 'html' : true } 属性 添加到我的数据表
我试过把它编辑成
array('type' => 'string', 'role' => 'tooltip', 'p' => '{ html : true}'),
甚至
array('type' => 'string', 'role' => 'tooltip', 'html' => true),
但其中 none 似乎有效,我也找不到在 google 上执行此操作的方法。
我希望我已经提供了足够的信息来帮助您得出答案,如果您还需要什么,请告诉我。
这是我第一次在这里发帖,所以请多多关照(:
dataTable.addColumn({'type': 'string', 'role': 'tooltip', 'p': {'html': true}});
即json格式。因此,如果我理解正确,您只需要将数组转换为 json 数组即可。在 PHP 中,您可以通过 json_encode 函数来实现。
您 array('type' => 'string', 'role' => 'tooltip', 'p' => '{ html : true}'),
的方向是正确的,但是 'html': true
部分需要一个额外的数组。
它应该看起来像 array('type' => 'string', 'role' => 'tooltip', 'p' => array('html' => true));
我在这里试过了:Link to test
好的,我已经设法修复它,问题是我必须将它添加为额外的数组元素,如下所示:
array('type' => 'string', 'role' => 'tooltip', 'p' => array('html' => true)),
这以 Google 图表接受的格式创建了 JSON,将工具提示转换为 HTML 格式的文本。
我正在尝试通过将它们添加到数据表中来在我的 google 图表中创建自定义 html 工具提示,现在我的数据表正在 PHP 中创建,如下所示:
$datatable = array('cols' => array(
array('type' => 'string', 'role' => 'domain', 'label' => 'Month'),
array('type' => 'string', 'role' => 'tooltip'),
array('type' => 'string', 'role' => 'domain', 'label' => 'Omzet'),
array('type' => 'number', 'label' => 'Omzet '.$jaar),
array('type' => 'number', 'label' => 'Omzet '.($jaar-1)),
array('type' => 'string', 'role' => 'domain', 'label' => 'Aantal'),
array('type' => 'number', 'label' => 'Aantal '.$jaar),
array('type' => 'number', 'label' => 'Aantal '.($jaar-1))
));
并像这样填充:
$datatable['rows'][] = array('c' => array(
array('v' => $monthname),
array('v' => '<h1>custom</h1> tooltip '.$monthname),
array('v' => 'Omzet '.$monthname),
array('v' => $row['totaal']),
array('v' => $omzet),
array('v' => 'Aantal'),
array('v' => $row['aantal']),
array('v' => $aantal)
));
但是对于您可以在 Javascript 中为 google 图表指定的数据表,您必须添加类似
的内容dataTable.addColumn({'type': 'string', 'role': 'tooltip', 'p': {'html': true}});
否则工具提示将以纯文本而不是 html 标记的形式出现 https://developers.google.com/chart/interactive/docs/customizing_tooltip_content#customizing-html-content
这意味着我将不得不以某种方式将 'p' : { 'html' : true } 属性 添加到我的数据表
我试过把它编辑成
array('type' => 'string', 'role' => 'tooltip', 'p' => '{ html : true}'),
甚至
array('type' => 'string', 'role' => 'tooltip', 'html' => true),
但其中 none 似乎有效,我也找不到在 google 上执行此操作的方法。
我希望我已经提供了足够的信息来帮助您得出答案,如果您还需要什么,请告诉我。
这是我第一次在这里发帖,所以请多多关照(:
dataTable.addColumn({'type': 'string', 'role': 'tooltip', 'p': {'html': true}});
即json格式。因此,如果我理解正确,您只需要将数组转换为 json 数组即可。在 PHP 中,您可以通过 json_encode 函数来实现。
您 array('type' => 'string', 'role' => 'tooltip', 'p' => '{ html : true}'),
的方向是正确的,但是 'html': true
部分需要一个额外的数组。
它应该看起来像 array('type' => 'string', 'role' => 'tooltip', 'p' => array('html' => true));
我在这里试过了:Link to test
好的,我已经设法修复它,问题是我必须将它添加为额外的数组元素,如下所示:
array('type' => 'string', 'role' => 'tooltip', 'p' => array('html' => true)),
这以 Google 图表接受的格式创建了 JSON,将工具提示转换为 HTML 格式的文本。