Как я могу передать переменную PHP из одного файла в другой несколько раз?

У меня есть высокоточный график в файле с именем charts.php, который перезагружает данные графика из вторичного файла с именем data.php. Поскольку у меня есть 5 рядов в моем графике highstock, мне нужно 5 раз вызывать файл data.php, каждый раз используя другую переменную, но когда я устанавливаю переменную в моем файле 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 );
});

Таким образом, проблема заключается в том, что и series [0], и series [1] используют последнее значение моей переменной, которое в данном случае равно $ _SESSION [«unit»] = 1. Является ли способ заставить эту работу работать? Есть ли лучшие альтернативы?

Возможно, если бы я мог создать данные для всех рядов в одном файле и каким-то образом разделить эти данные и передать их в серии [0] и серии [1] по отдельности, но я понятия не имею, как это сделать ..

Любая помощь приветствуется.

0

Решение

Может быть, вы могли бы изменить свой файл data.php, поэтому вместо использования $_SESSION["unit"] чтобы определить, какую переменную использовать, используйте $_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

Другие решения

Это зависит от ваших потребностей, если значения $ 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/

0

По вопросам рекламы [email protected]