Javascript AJAX对highcharts的呼吁

Javascript AJAX对highcharts的呼吁,javascript,php,ajax,highcharts,Javascript,Php,Ajax,Highcharts,因此,我终于想出了以下脚本,它基于MySQL中的数据生成highcharts图 实际的HTML和Javascript如下所示: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Highcharts</title> <script type="text/javascript" s

因此,我终于想出了以下脚本,它基于MySQL中的数据生成highcharts图

实际的HTML和Javascript如下所示:

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Highcharts</title>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">

function test(year){
   $.getJSON("data.php?year="+year, function(json){
   options.series[0].data = json['data'];
   chart = new Highcharts.Chart(options);
   });
 }
</script>
<script>
$(function () {
var chart;
$(document).ready(function() {
    $.getJSON("data.php?year=2012", function(json) {

        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
                type: 'line',
                marginRight: 130,
                marginBottom: 25
            },
            title: {
                text: 'Revenue vs. Overhead',
                x: -20 //center
            },
            subtitle: {
                text: '',
                x: -20
            },
            xAxis: {
                categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
            },
            yAxis: {
                title: {
                    text: 'Amount'
                },
                plotLines: [{
                    value: 0,
                    width: 1,
                    color: '#808080'
                }]
            },
            tooltip: {
                formatter: function() {
                        return '<b>'+ this.series.name +'</b><br/>'+
                        this.x +': '+ this.y;
                }
            },
            legend: {
                layout: 'vertical',
                align: 'right',
                verticalAlign: 'top',
                x: -10,
                y: 100,
                borderWidth: 0
            },
            series: json
        });
    });

});

});
    </script>
</head>
<body>
 <script src="http://code.highcharts.com/highcharts.js"></script>
 <script src="http://code.highcharts.com/modules/exporting.js"></script>

<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
<button onclick="test('2013')">2013</button>
</body>
</html>

海图
功能测试(年){
$.getJSON(“data.php?year=“+year,function(json)){
options.series[0]。data=json['data'];
图表=新的高点图表。图表(选项);
});
}
$(函数(){
var图;
$(文档).ready(函数(){
$.getJSON(“data.php?year=2012”,函数(json){
图表=新的高点图表。图表({
图表:{
renderTo:'容器',
键入:“行”,
marginRight:130,
marginBottom:25
},
标题:{
文本:“收入与间接费用”,
x:-20/中心
},
副标题:{
文本:“”,
x:-20
},
xAxis:{
类别:[一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月]
},
亚克斯:{
标题:{
文本:“金额”
},
绘图线:[{
值:0,
宽度:1,
颜色:'#808080'
}]
},
工具提示:{
格式化程序:函数(){
返回“+this.series.name+”
+ this.x+':'+this.y; } }, 图例:{ 布局:“垂直”, 对齐:“右”, 垂直排列:“顶部”, x:-10, y:100, 边框宽度:0 }, 系列:json }); }); }); }); 2013
PHP文件如下所示:

<?php
$con=mysqli_connect("x","x","x","x");
$year = $_GET["year"];
$rows = array();
$rows['name'] = '2012';
$x = mysqli_query($con,"
    SELECT Logdatetime, Temp
    FROM alldata 
    WHERE YEAR(Logdatetime)=$year
    LIMIT 12"
);

while($r = mysqli_fetch_array($x)){
$rows['data'][] = $r['Temp'];
}

$result = array();
array_push($result,$rows);

print json_encode($result, JSON_NUMERIC_CHECK);

?>

现在的问题是,它工作并生成初始图形,值为“2012”作为年份,但在单击我想要生成2013年的按钮后,什么也没有发生


知道错误在哪里吗?它一定在函数test()中的某个地方,我用它来触发按钮单击的调用,但我不知道如何修复它。

。。。享受您的服务器pwn3d。我知道这一点,这只是为了测试AJAX功能,稍后我将讨论安全性。你能帮我用“year”参数触发ajax调用吗?你已经在所有地方硬编码了2012,包括在你的
.getJSON
调用中。您需要使其动态化,例如,
$.getJSON('data.php?year='+year)
。在测试函数中,我像您建议的那样使用它,那么初始函数中应该是什么呢?只是data.php?如果您在开始时需要完整的数据,可以。然后cach单击事件,将请求发送到php脚本,php脚本将返回json,获取json并使用addSeries/setData函数。