使用搜索变量将数据传递给Highcharts不起作用

时间:2015-08-26 18:55:43

标签: javascript php charts highcharts

如标题中所述,我实际上是在创建一个小应用程序,您可以在其中查找数据库中的随机名称,并显示适当的图表(显示搜索到的名称数据的图表) )。

当我通过在我的 data.php 文件中放置一个静态名称(图表从中获取数据)时,它运行良好。但是当我使用 $ _ 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(); 


?> 

chart.php

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

在我的搜索页面中,我输入的代码如下:

<?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> 

...
?>

当然还有足够的javascript for highcharts等。当我点击主页上的按钮搜索时,它会将我重定向到我的搜索页面。

提前谢谢。

0 个答案:

没有答案