0

如果可能的话,我想要一些帮助。我正在使用 highcharts 生成图表。我有一个 data.php 文件来生成我的数组。

该数组是由来自表单的动态查询并使用 json_encode 创建的。打印数组后: print $array_final1; 我想重定向到我有图表的页面:demo.php 使用 header('location: demo.php'); 在下一行。

如果我添加重定向线,它会将我带到页面,但没有数据导入到图表中。

数据.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);
?> 

任何帮助,将不胜感激。谢谢

4

2 回答 2

0

当然没有数据被导入,你没有发送任何东西。

既然你已经在使用一个会话,为什么不把你想在另一个页面中使用的数据放进$_SESSION去呢?

$_SESSION['array_final'] = $array_final1;

// the redirect

-- 在 demo.php 中 --

只需使用

$_SESSION['array_final']
于 2013-10-25T11:58:16.747 回答
0

我和你有同样的问题,但我找到了解决方法。

如果我正确理解你的问题,你有一个 data.php 页面,它从 MySQL 中获取数据并生成一个数组列表供 Highcharts javascript 读取。在 demo.php 页面中,您可以使用调用 data.php 来获取信息的 Highcharts javascript。

无需使用标头('位置...')进行重定向。在 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 部分之后销毁会话对象。

希望这可以帮助。

于 2014-02-07T02:46:25.463 回答