【问题标题】:Passing dynamic php values for Highchart graphs为 Highchart 图表传递动态 php 值
【发布时间】:2015-01-24 05:24:57
【问题描述】:

我有一个 php 文件,我将它连接到 MySQL 并获取一些值。我想在 .tpl 文件中使用这些值来显示我正在使用 Highcharts 的图表。我不知何故无法将 php 值传递给 javascript 图形。请看一下代码并告诉我哪里出错了。

我的php代码是:

$sqlStr = "select * from users where user_id=".$_SESSION['user_id'];

        $sqlQuery = mysql_query($sqlStr) or die(mysql_error()."<hr>".$sqlStr);

        if ( mysql_num_rows($sqlQuery) ) {

            $rowMyReport = mysql_fetch_assoc($sqlQuery);

            $smarty->assign("value1",$rowMyReport['value1']);
            $smarty->assign("value2",$rowMyReport['value2']);
            $smarty->assign("value3",$rowMyReport['value3']);
            $smarty->assign("value4",$rowMyReport['value4']);
            }  

现在我想将这些值用于 Highcharts,以便在我的网站上制作图表。所以我尝试了这个:

$(function () {
$('#graph').highcharts({
    chart: {
        plotBackgroundColor: null,
        plotBorderWidth: 1,//null,
        plotShadow: false
    },
    title: {
        text: 'Browser market shares at a specific website, 2014'
    },
    tooltip: {
        pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
    },
    plotOptions: {
        pie: {
            allowPointSelect: true,
            cursor: 'pointer',
            dataLabels: {
                enabled: true,
                format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                style: {
                    color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                }
            }
        }
    },
    series: [{
        type: 'pie',
        name: 'Some-name',
        data: [
            ['title1',  <?php echo $value1; ?>],
            ['title2',       <?php echo $value2; ?>],
            ['title3',   <?php echo $value3; ?>],
            ['title4',    <?php echo $value4; ?>]
        ]
    }]
});
});

我在 .tpl 文件中这样称呼这个图:

<div id="graph" style="min-width: 200px; height: 200px; margin: 0 auto"></div>

通过提供硬编码值,图表会显示出来,但是当我使用动态值(php 值)时,图表不会显示。任何帮助将不胜感激...

【问题讨论】:

  • 可能问题在于您的值是字符串,而不是数字。所以使用 json_encode()。欲了解更多信息,请访问我们的website

标签: javascript php mysql highcharts


【解决方案1】:

在你的控制器中使用json_encode作为数据,然后再传递它。

【讨论】:

  • 您能否通过我的问题中的示例来帮助我处理 json_encode。就像我需要时如何访问各个值一样......
  • $smarty->assign("value1",json_encode($rowMyReport['value1']));当你使用 highchart 时,你必须 json_encode(your_data) 并传递它。
  • 所以我在 php 和 .tpl 中更改了它,我使用了 .. 仍然看不到图表。
  • 在你的 tpl 文件中使用
猜你喜欢
  • 2017-02-15
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 2016-03-01
  • 2012-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多