如果可能,我想要一些帮助。我正在使用highcharts来制作图表。我有一个data.php文件,可以生成我的数组。
数组是通过表单中的动态查询并使用json_encode创建的。打印数组后:print $ array_final1; 我想重定向到我的图表页面:demo.php使用header('location:demo.php');在下一行。
如果我添加重定向行,它会将我带到页面,但不会将数据导入图表。
data.php
<?php
session_start();
$con = mysql_connect("","","");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
$start = $_SESSION['start'];
$end = $_SESSION['end'];
$agent = $_SESSION['Agent'];
mysql_select_db("db", $con);
$query = mysql_query("QUERY";
$category = array();
$category['name'] = 'Col';
$series1 = array();
$series1['name'] = 'Total';
while($r = mysql_fetch_array($query)) {
$category['data'][] = $r['Col'];
$series1['data'][] = $r['Total'];
}
$result = array();
array_push($result,$category);
array_push($result,$series1);
$array_final = json_encode($result);
$array_final1 = preg_replace('/"(-?\d+\.?\d*)"/', '$1', json_encode($result));
print $array_final1;
header('location: demo.php');
mysql_close($con);
?>
任何帮助将不胜感激。 感谢
答案 0 :(得分:0)
当然没有导入任何数据,你没有发送任何数据。
由于您已经在使用会话,为什么不将要在其他页面中使用的数据放入$_SESSION
?
$_SESSION['array_final'] = $array_final1;
// the redirect
- 在demo.php中 -
只需使用
$_SESSION['array_final']
答案 1 :(得分:0)
我和你有同样的问题,但我找到了解决办法。
如果我正确理解你的问题,你有一个data.php页面,它从MySQL获取数据并生成一个数组列表供Highcharts javascript阅读。在demo.php页面中,您有Highcharts javascript,它调用data.php来获取信息。
无需使用标题重定向('location ...')。在demo.php页面中,您应该生成一个存储值的会话,并在data.php中检查会话是否有值,否则执行某些操作或不执行操作。
以下是我的例子,
<?php
if(isset($_POST['sort'])){
$from=$_POST['SDate'];
$to=$_POST['EDate'];
$sTime=$_POST['STime'];
$eTime=$_POST['ETime'];
session_start();
$_SESSION['start']=$from." ".$sTime;
$_SESSION['end']=$to." ".$eTime;
}
?>
我有一个按钮名称/ id ='sort',onclick将运行上面的代码。它将获取4个下拉列表的选定值并将它们附加在一起以形成开始日期/时间和结束日期/时间,然后将其存储到2个会话对象中以供使用。
现在我有data.php,
session_start();
if(isset($_SESSION['start'])){
$starter = $_SESSION['start'];
$ender = $_SESSION['end'];
$sth = mysql_query("SELECT * FROM table WHERE roomID='501' AND (dateTime BETWEEN '$starter' AND '$ender') ORDER BY recordID");
$rows = array();
$rows['name'] = 'DateTime';
while($rr = mysql_fetch_assoc($sth)) {
$rows['data'][] = $rr['dateTime'];
}
$sth = mysql_query("SELECT * FROM table WHERE roomID='501' AND (dateTime BETWEEN '$starter' AND '$ender') ORDER BY recordID");
$rows1 = array();
$rows1['name'] = 'RoomTemperature';
while($r = mysql_fetch_array($sth)) {
$rows1['data'][] = $r['roomTemp'];
}
$result = array();
array_push($result,$rows);
array_push($result,$rows1);
$help = print json_encode($result, JSON_NUMERIC_CHECK);
mysql_close($con);
}
else{
//do something or nothing
}
因此,每次单击“排序”按钮时,下拉列表中选择的任何内容都存储在data.php将能够获取的会话中。如果你愿意,可以在demo.php中的Highcharts javascript部分之后销毁会话对象,如果我没有错的话。
希望这有帮助。