Javascript 将带有搜索变量的数据传递到Highcharts无效

Javascript 将带有搜索变量的数据传递到Highcharts无效,javascript,php,charts,highcharts,Javascript,Php,Charts,Highcharts,正如在标题中所说,我实际上正在制作一个小应用程序,在这个应用程序中,您可以在数据库中查找一个随机名称,并显示适当的图表(显示搜索名称数据的图表) 当我尝试在data.php文件(图表从中获取数据)中输入静态名称时,它工作得很好。但是当我使用$\u GET['search']时,它没有显示任何内容。(我检查了我的data.php,它正确地返回了JSON)所以我猜它来自HighCharts 你是否碰巧知道问题出在哪里 这是我的一些代码,你可以理解我的意思 data.php <?php try

正如在标题中所说,我实际上正在制作一个小应用程序,在这个应用程序中,您可以在数据库中查找一个随机名称,并显示适当的图表(显示搜索名称数据的图表)

当我尝试在data.php文件(图表从中获取数据)中输入静态名称时,它工作得很好。但是当我使用$\u GET['search']时,它没有显示任何内容。(我检查了我的data.php,它正确地返回了JSON)所以我猜它来自HighCharts

你是否碰巧知道问题出在哪里

这是我的一些代码,你可以理解我的意思

data.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> 

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语法正确的话。