如何在基于JS的Google图表中显示PHP数组值

How do I display PHP array values in JS-based Google Charts?

本文关键字:显示 PHP 数组 Google JS      更新时间:2023-09-26

图表文档使用以下示例:

    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Toppings');
    data.addColumn('number', 'Slices');
    data.addRows([
      ['Cheese', 3],
      ['Onions', 1],
      ['Olives', 1],
      ['Zucchini', 1],
      ['Pepperoni', 2]
    ]);

我正在构建我的谷歌图表如下:

    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Standing');
    data.addColumn('number', 'Students');
    data.addRows([
      [<?= $users[0]->COLLEGE; ?>, <?= $users[0]->HEADCOUNT; ?>],
    ]);

但没有打印任何图表。如何使用PHP数组内容填充图表?

您的代码不会向生成的JavaScript值添加引号(也不会转义它们)。PHPjson_encode能够从PHP字符串中生成有效的JavaScript值,并为您处理所有引号和转义,因此只需使用:

 var data = new google.visualization.DataTable();
    data.addColumn('string', 'Standing');
    data.addColumn('number', 'Students');
    data.addRows([
      [<?= json_encode($users[0]->COLLEGE); ?>, <?= json_encode($users[0]->HEADCOUNT, JSON_NUMERIC_CHECK); ?>],
    ]);

这也应该可以防止一大堆XSS和其他讨厌的代码注入攻击,并处理转义。