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


How do I pass a PHP variable from one file to another multiple times?

我在一个名为charts.php的文件中有一个高库存图,它从一个称为data.php的辅助文件中重新加载图形数据。由于我的高库存图中有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。有办法做到这一点吗?还有更好的选择吗?

也许我可以在一个文件中为所有系列创建数据,并以某种方式将数据拆分并分别传递给系列[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 );
});

这取决于您的需求,如果$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/