Как отобразить значения массива PHP в Google Charts на основе JS?

0

В документации диаграмм используется следующий пример:

    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 для заполнения диаграммы?

Теги:
google-visualization

1 ответ

0
Лучший ответ

Ваш код не добавляет кавычки к результирующим значениям JavaScript (и вы не избегаете их). PHP json_encode имеет возможность создавать допустимые значения JavaScript из строк PHP и обрабатывать все кавычки и ускользать для вас, поэтому просто используйте это:

 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 и других неприятных атак с инъекциями кода и справиться с экранированием.

  • 0
    Это не работает Диаграмма не отображается вообще.
  • 0
    Я сделал опечатку в последней функции json_encode
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню