Javascript Highchart在我向重定向添加额外行时不打印json

Javascript Highchart在我向重定向添加额外行时不打印json,javascript,php,json,highcharts,Javascript,Php,Json,Highcharts,如果可能的话,我想要一些帮助。我正在使用highcharts生成图表。我有一个data.php文件,可以生成我的数组 数组是通过表单中的动态查询并使用json_encode创建的。打印数组后:打印$array\u final1; 我想使用header('location:demo.php')重定向到我的图表所在的页面:demo.php;在下一行 如果我添加重定向行,它会将我带到页面,但没有数据导入到图形中 data.php <?php session_start(); $con = my

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

数组是通过表单中的动态查询并使用json_encode创建的。打印数组后:打印$array\u final1; 我想使用header('location:demo.php')重定向到我的图表所在的页面: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);
?> 

当然没有导入数据,您没有发送任何内容

既然您已经在使用会话,为什么不将要在另一个页面中使用的数据放入会话中

$_SESSION['array_final'] = $array_final1;

// the redirect
--在demo.php中--

只用

$_SESSION['array_final']

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

如果我正确理解了您的问题,那么您有一个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;
        }
        ?>
因此,每次单击“排序”按钮时,下拉列表中选择的内容都存储在会话中,data.php将能够获取该会话。如果我没记错的话,可以在demo.php中的Highcharts javascript部分之后销毁会话对象


希望这能有所帮助。

我建议您确切地研究重定向发生的情况以及它们的工作方式。“服务器返回一个位置标题,作为返回浏览器的一部分,它告诉浏览器不要加载此页面,而是转到此位置。”好的,我明白了。我可以在加载页面后重定向到页面吗?您确定要这样做吗?是否要加载页面,然后立即将浏览器重定向到新页面?如果要重定向,加载页面有什么意义呢?我有一个表单(form.php),用于actions data.php,它构建查询并打印我的数组。然后我有另一个页面(graph.php),我有我的highchart,我只知道如何使用:$.getJSON(“data.php”,function(json)我的目标是,一旦用户按下提交表单,将在data.php中创建的数组和指向graph.php的用户。我只知道如何从另一个文件读取图表数据:$.getJSON(“data.php”,function(json){options.xAxis.categories=json[0]['data'];options.series[0]=json[1];图表=新的高点图表。图表(选项);
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
}