如何在基于JS的Google Charts中显示PHP数组值?

时间:2014-11-07 21:11:44

标签: javascript php google-visualization

图表文档使用以下示例:

    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]
    ]);

我正在构建我的Google图表,如下所示:

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

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

1 个答案:

答案 0 :(得分:0)

您的代码没有为生成的JavaScript值添加引号(并且您不会逃避它们)。 PHP json_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和其他令人讨厌的代码注入攻击并处理转义。