Я пытаюсь создать пользовательские подсказки html в своей диаграмме google, добавив их в datatable, прямо сейчас мой datatable создается на 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} в мой datatable
Я попытался, отредактировав его
array('type' => 'string', 'role' => 'tooltip', 'p' => '{ html : true}'),
или даже
array('type' => 'string', 'role' => 'tooltip', 'html' => true),
но ни один из них, похоже, не работает, и я не могу найти способ сделать это и в Google.
Надеюсь, я дал достаточно информации, чтобы помочь придумать ответ, если вам нужно что-то еще, пожалуйста, дайте мне знать.
Это мой первый вопрос, задающий вопрос, поэтому, пожалуйста, будьте милы (:
Вы были на правильном пути с array('type' => 'string', 'role' => 'tooltip', 'p' => '{ html : true}'),
но вам нужно иметь дополнительный массив для 'html': true
часть.
Он должен выглядеть как array('type' => 'string', 'role' => 'tooltip', 'p' => array('html' => true));
Я попробовал это здесь: Ссылка на тест
dataTable.addColumn ({'type': 'string', 'role': 'tooltip', 'p': {'html': true}});
Это в формате json. Поэтому, если я понимаю вас правильно, вам просто нужно преобразовать массив в json-массив. В PHP вы можете сделать это через функцию json_encode .
Хорошо, мне удалось это исправить, я должен был добавить его как дополнительный элемент массива:
array('type' => 'string', 'role' => 'tooltip', 'p' => array('html' => true)),
это создало JSON в том виде, в котором диаграмма Google появилась, чтобы превратить всплывающую подсказку в текст в формате HTML.