无法将变量从 PHP 传递给 JS

Can't pass variable from PHP to JS

我想使用 php 代码从我的 MySQL 服务器加载数据,然后用它来绘制带有 google 图表的图表。问题是我无法在 java-脚本代码中使用从我的 mysql 查询的数据。

PHP代码:

  $connection = mysql_connect('127.0.0.1','root','123456');
  mysql_select_db('db_statmarket',$connection);
  $result2 = mysql_query('select sum(`How much read from customer`) as Leads, Date from monitor group by Date;',$connection) or die('cannot show tables');

在 java 脚本代码中,我们可以看到 var data = ... 我希望他是我从数据库中查询的 table。

HTML & JS代码:

<script type="text/javascript">
  google.setOnLoadCallback(drawChart);

  function drawChart() {
    var data = google.visualization.arrayToDataTable([
      ['Year', 'Sales', 'Expenses'],
      ['2004',  1000,      400],
      ['2005',  1170,      460],
      ['2006',  660,       1120],
      ['2007',  1030,      540]
    ]);

    var options = {
      title: 'Company Performance',
      curveType: 'function',
      legend: { position: 'bottom' }
    };

    var chart = new google.visualization.LineChart(document.getElementById('curve_chart'));

    chart.draw(data, options);
  }
</script>

输出需要如下所示:

类似的东西:

<?php
    $connection = mysql_connect('127.0.0.1','root','123456');
    mysql_select_db('db_statmarket',$connection);
    $result2 = mysql_query('select sum(`How much read from customer`) as Leads, Date from monitor group by Date;',$connection) or die('cannot show tables');

    $json = array();
    while($row = mysql_fetch_assoc($result2)) {
        $json[] = $row;
    }
?>
<script type="text/javascript">
    var data = <?php echo json_encode($json); ?>;
    // chart code here
</script>

如果您的 javascript 在 .js 文件中,您可以:

  1. 让你的数据变量"global"(尽管最好将它包装在一个全局对象中,以免污染全局命名空间)
  2. 使用 Ajax(在这种情况下,php 代码是相同的,但在单独的文件中仅返回 JSON 数据)