Javascript 将带有搜索变量的数据传递到Highcharts无效
正如在标题中所说,我实际上正在制作一个小应用程序,在这个应用程序中,您可以在数据库中查找一个随机名称,并显示适当的图表(显示搜索名称数据的图表) 当我尝试在data.php文件(图表从中获取数据)中输入静态名称时,它工作得很好。但是当我使用$\u GET['search']时,它没有显示任何内容。(我检查了我的data.php,它正确地返回了JSON)所以我猜它来自HighCharts 你是否碰巧知道问题出在哪里 这是我的一些代码,你可以理解我的意思 data.phpJavascript 将带有搜索变量的数据传递到Highcharts无效,javascript,php,charts,highcharts,Javascript,Php,Charts,Highcharts,正如在标题中所说,我实际上正在制作一个小应用程序,在这个应用程序中,您可以在数据库中查找一个随机名称,并显示适当的图表(显示搜索名称数据的图表) 当我尝试在data.php文件(图表从中获取数据)中输入静态名称时,它工作得很好。但是当我使用$\u GET['search']时,它没有显示任何内容。(我检查了我的data.php,它正确地返回了JSON)所以我猜它来自HighCharts 你是否碰巧知道问题出在哪里 这是我的一些代码,你可以理解我的意思 data.php <?php try
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=nsui', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$sql=<<<SQL
SELECT `Period_start_time`, `Segment_Name`,
`csf_bh`, `drp_sd_bh`, `ec_tch_bh`, `ec_hors_cong_bh`
FROM `call_succes`
WHERE `Segment_Name`='{$search}'
SQL;
$reponse = $bdd->query($sql);
$bln = array();
$bln['name'] = 'Period_start_time';
$rows1['name']='csf_bh';
$rows2['name']='drp_sd_bh';
$rows3['name']='ec_tch_bh';
$rows4['name']='ec_hors_cong_bh';
while($donnee=$reponse->fetch()){
$bln['data'][] = $donnee['Period_start_time'];
$rows1['data'][] = $donnee['csf_bh'];
$rows2['data'][] = $donnee['drp_sd_bh'];
$rows3['data'][] = $donnee['ec_tch_bh'];
$rows4['data'][] = $donnee['ec_hors_cong_bh'];
}
$rslt = array();
array_push($rslt, $bln);
array_push($rslt, $rows1);
array_push($rslt, $rows2);
array_push($rslt, $rows3);
array_push($rslt, $rows4);
print json_encode($rslt, JSON_NUMERIC_CHECK);
$reponse->closeCursor();
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container_call',
type: 'line'
},
title: {
text: 'Call Setup Failure',
x: -20 //center
},
subtitle: {
text: '',
x: -20
},
xAxis: {
categories: [],
title: {
text: 'Date'
}
},
yAxis: {
labels: {
format: '{value} %'
},
min: 0,
title: {
text: 'Percentage (%)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
valueSuffix: '%',
shared: true
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 0
},
series: []
};
$.getJSON("data.php", function(json) {
options.xAxis.categories = json[0]['data']; //xAxis: {categories: []}
options.series[0] = json[1];
options.series[1] = json[2];
options.series[2] = json[3];
options.series[3] = json[4];
chart = new Highcharts.Chart(options);
});
});
</script>
chart.php
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=nsui', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$sql=<<<SQL
SELECT `Period_start_time`, `Segment_Name`,
`csf_bh`, `drp_sd_bh`, `ec_tch_bh`, `ec_hors_cong_bh`
FROM `call_succes`
WHERE `Segment_Name`='{$search}'
SQL;
$reponse = $bdd->query($sql);
$bln = array();
$bln['name'] = 'Period_start_time';
$rows1['name']='csf_bh';
$rows2['name']='drp_sd_bh';
$rows3['name']='ec_tch_bh';
$rows4['name']='ec_hors_cong_bh';
while($donnee=$reponse->fetch()){
$bln['data'][] = $donnee['Period_start_time'];
$rows1['data'][] = $donnee['csf_bh'];
$rows2['data'][] = $donnee['drp_sd_bh'];
$rows3['data'][] = $donnee['ec_tch_bh'];
$rows4['data'][] = $donnee['ec_hors_cong_bh'];
}
$rslt = array();
array_push($rslt, $bln);
array_push($rslt, $rows1);
array_push($rslt, $rows2);
array_push($rslt, $rows3);
array_push($rslt, $rows4);
print json_encode($rslt, JSON_NUMERIC_CHECK);
$reponse->closeCursor();
?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container_call',
type: 'line'
},
title: {
text: 'Call Setup Failure',
x: -20 //center
},
subtitle: {
text: '',
x: -20
},
xAxis: {
categories: [],
title: {
text: 'Date'
}
},
yAxis: {
labels: {
format: '{value} %'
},
min: 0,
title: {
text: 'Percentage (%)'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
valueSuffix: '%',
shared: true
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'middle',
borderWidth: 0
},
series: []
};
$.getJSON("data.php", function(json) {
options.xAxis.categories = json[0]['data']; //xAxis: {categories: []}
options.series[0] = json[1];
options.series[1] = json[2];
options.series[2] = json[3];
options.series[3] = json[4];
chart = new Highcharts.Chart(options);
});
});
</script>
$(文档).ready(函数(){
变量选项={
图表:{
renderTo:'容器调用',
类型:“行”
},
标题:{
文本:“呼叫设置失败”,
x:-20/中心
},
副标题:{
文本:“”,
x:-20
},
xAxis:{
类别:[],
标题:{
文本:“日期”
}
},
亚克斯:{
标签:{
格式:“{value}%”
},
分:0,,
标题:{
正文:“百分比(%)”
},
绘图线:[{
值:0,
宽度:1,
颜色:'#808080'
}]
},
工具提示:{
valueSuffix:“%”,
分享:真的
},
图例:{
布局:“垂直”,
对齐:“右”,
垂直排列:'中间',
边框宽度:0
},
系列:[]
};
$.getJSON(“data.php”,函数(json){
options.xAxis.categories=json[0]['data'];//xAxis:{categories:[]
options.series[0]=json[1];
options.series[1]=json[2];
options.series[2]=json[3];
options.series[3]=json[4];
图表=新的高点图表。图表(选项);
});
});
在我的搜索页面中,我输入了如下代码:
<?php
...
...
global $search;
$button = $_GET [ 'submit' ];
$search = $_GET [ 'search' ];
...
...
$html.=<<<HTML
<div class="box alt">
<div class="row 50% uniform">
<div id="container_call" class="6u 6u(xsmall)">
HTML;
include ('chart.php');
$html.=<<<HTML
</div>
</div>
</div>
...
?>
当然,当我点击主页上的搜索按钮时,它会将我重定向到我的搜索页面
提前谢谢。这个“{$search}”从哪里来???@SubinThomas:在我的搜索页面中。我有$search=$\u GET['search']@苏宾托马斯:嗯,我对这一切都很陌生。。为什么我要使用session_start();和$_会话['search']=“bla bla”?不是$search=$\u GET['search'];足够地My data.php中的JSON是正确的,并返回足够的数据。当我把echo$search放进去时;在chart.php中,它也返回正确的$search。这是我的错。检查data.php中的$search值。我不认为$search在data.php中是可访问的。我认为在搜索页面(图表和数据)中包含data.php可以解决您的问题,如果您的$sql语法正确的话。