繁体   English   中英

无法将变量从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');

在javascript代码中,我们可以在其中看到var data = ...我希望他将成为我从数据库中查询的表。

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. 数据变量设置为“全局”(尽管最好将其包装在全局对象中,以免污染全局名称空间)
  2. 使用Ajax(在这种情况下,php代码将是相同的,但在单独的文件中仅返回JSON数据)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM