当我添加额外的行进行重定向时,Highchart 不打印 json

Highchart not printing json when I add extra line to redirect

本文关键字:Highchart json 打印 重定向 添加      更新时间:2023-09-26

如果可能的话,我希望得到一些帮助。我正在使用高图表来生成图表。我有一个生成数组的数据.php文件。

数组由表单中的动态查询并使用json_encode创建。打印数组后:打印 $array_final1;我想重定向到我有我的图表的页面:演示.php通过使用标题('位置:演示.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);
?> 

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

当然,不会导入任何数据,您不会发送任何内容。

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

$_SESSION['array_final'] = $array_final1;
// the redirect
--

演示中.php --

只需使用

$_SESSION['array_final']

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

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

无需使用标头("位置...")进行重定向。在demo.php页面中,您应该生成一个会话来存储值,而在数据中.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',点击后将运行上面的代码。它将抓取 4 个下拉列表中的选定值并将它们附加到一起以形成开始日期/时间和结束日期/时间,然后将其存储到 2 个会话对象中以供使用。

现在在数据中.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
}

因此,每次我单击"排序"按钮时,下拉列表中选择的任何内容都将存储在会话中.php哪些数据将能够抓取。如果我没错的话.php如果你愿意,你可以在演示中的Highcharts javascript部分之后销毁会话对象。

希望这有帮助。