Добавление свойства в php datatable для google chart custom html tooltips

Я пытаюсь создать пользовательские подсказки 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.