如何将PHP变量从一个文件多次传递到另一个文件?

时间:2015-03-03 17:14:58

标签: javascript php json highcharts highstock

我在一个名为charts.php的文件中有一个highstock图表,它从名为data.php的辅助文件重新加载图形数据。看到我在我的highstock图中有5个系列我必须调用data.php文件5次,每次使用不同的变量,但是当我在我的charts.php文件中设置变量时,它只使用最后一个设置值变量。有可能解决这个问题,还是这只是PHP的工作方式?我是否必须创建5个单独的data.php文件才能使其正常工作?

这基本上是我的代码看起来像(显示2个系列以保持简短):

var chart = new Highcharts.StockChart({
    chart: {
        renderTo: 'chart'
    },

    title : { text : 'MyChart' },

    series : [
        {
            name : 'Unit 0',
            data : [],
            tooltip: { valueDecimals: 1, valueSuffix: ' kW' },
        },
        {
            name : 'Unit 1',
            data : [],
            tooltip: { valueDecimals: 1, valueSuffix: ' kW' },
        }
    ]
});

<?php $_SESSION["unit"] = 0; ?>

$.getJSON( "data.php", function (data) {
    chart.series[0].setData( data );
});

<?php $_SESSION["unit"] = 1; ?>

$.getJSON( "data.php", function (data) {
    chart.series[1].setData( data );
});

所以问题是系列[0]和系列[1]都使用我的变量的最后一个值,在这种情况下是$ _SESSION [“unit”] = 1.这是一种使这个工作的方法吗?还有更好的选择吗?

也许如果我可以在一个文件中创建所有系列的数据并以某种方式拆分该数据并将其分别传递给series [0]和series [1],但我不知道该怎么做..

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

也许您可以修改data.php文件,因此不要使用$_SESSION["unit"]来确定要使用的var,而是使用$_GET["unit"]。然后,在上面的代码中,它将是:

$.getJSON( "data.php?unit=0", function (data) {
    chart.series[0].setData( data );
});

$.getJSON( "data.php?unit=1", function (data) {
    chart.series[1].setData( data );
});

答案 1 :(得分:0)

这取决于您的需求,如果$ unit值始终相同,我只需调用data.php一次,并使用JS响应一次更新所有图形。

如果$ unit有一个动态变量,我会将它与$ .getJSON函数一起发送。

var data = {
  unit: $_GET['unit']
};

$.getJSON( "data.php", data, function (response) {
  updateGraph(graph, response);
});

有关函数结构的getJSON的更多信息,请访问http://api.jquery.com/jquery.getjson/