In index.php
i run function two times, which include chart.html
.
index.php
chart_line($valuesNight); //run function for the first time
chart_line($valuesEvening); //run function for the second time
?>
<?php function chart_line($jsonDataSource){ ?>
<div>
<script type="text/javascript">
var dataSource = JSON.parse('<?php echo $jsonDataSource ?>');
var dValues = new Array;
var dTimeDate = new Array;
for(var o in dataSource) {
dValues.push(dataSource[o]['dValue']);
dTimeDate.push(dataSource[o]['dTimeDate']);
}
console.log('dValues', dValues);
// store values
sessionStorage.setItem('myValues', JSON.stringify(dValues));
sessionStorage.setItem('myTime', JSON.stringify(dTimeDate));
</script> //include chart.html
<object type="text/html" data="chart.html" width="100%" height="420"></object>
</div>
<?php } ?>
When chart_line($valuesNight);
runs console.log('dValues', dValues);
returns right values, but it does not run this object
with chart.html
. Then chart_line($valuesEvening);
runs and console dvalues
returns evening data. After that chart.html
starts two times and both times gives me latest (evening) data. How can i fix this problem?
chart.html
<html>
<body>
<script type="text/javascript">
// retrieve value
var myTime = JSON.parse(sessionStorage.getItem('myTime'));
var myValuesStr = JSON.parse(sessionStorage.getItem('myValues'));
var myValues = myValuesStr.map(function(item) {
return parseInt(item, 10);
});
console.log('myTime', myTime);
console.log('myValues', myValues);
$(function () {
$('#container').highcharts({
// ...
});
});
</script>
<script src="js/charts.js"></script>
<script src="js/modules/exporting.src.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
</body>
</html>
Console executes in this order:
console.log('dValues', dValues); // from index.php - night values
// HERE SHOUD EXECUTE CONSOLE FROM CHART.HTML
console.log('dValues', dValues); // from index.php - evening values
console.log('myTime', myTime); // from chart.html - evening values
console.log('myValues', myValues); // from chart.html - evening values
console.log('myTime', myTime); // from chart.html - evening values
console.log('myValues', myValues); // from chart.html - evening values
Temporary solution, but it works:
//for valuesNight
$(function () {
$('#container1').
//...
<div id="container1">
//for valuesEvening
$(function () {
$('#container2').
//...
<div id="container2">
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.