Javascript Highcharts未使用ajax加载的数组进行渲染

Javascript Highcharts未使用ajax加载的数组进行渲染,javascript,php,ajax,arrays,highcharts,Javascript,Php,Ajax,Arrays,Highcharts,我刚开始使用Highcharts,但已经遇到了一个问题。 我想用来自Ajax调用的数据填充图形,但它只显示一个空白图形 首先,我想向您展示如何获取数据: <?php require_once("mysql_config.php"); $query = "SELECT temp FROM daten ORDER BY daten.id DESC LIMIT 0,6"; $answer = mysqli_query($mysqli,$query); $row; while($row =

我刚开始使用Highcharts,但已经遇到了一个问题。 我想用来自Ajax调用的数据填充图形,但它只显示一个空白图形

首先,我想向您展示如何获取数据:

<?php

require_once("mysql_config.php");
$query = "SELECT temp FROM daten ORDER BY daten.id DESC LIMIT 0,6";

$answer = mysqli_query($mysqli,$query);
$row;

while($row = $answer->fetch_array()){
    echo $row['temp'] . ",";
}

?>
回调函数是我的create_chart函数

function create_chart(rawdata, element){

newdata = rawdata.split(",");

//var newdata = [-20,0,0,7,0,0,100];

var chart = new Highcharts.Chart({
        chart: {
            type: 'line',
            renderTo: 'test'
        },
        title: {
            text: 'Testchart'
        },
        subtitle:{
            text: 'Subtitle'
        },
        xAxis: {
            categories: ['A','B','C','D','E','F','G']
        },
        yAxis: {
            title: {
                text: 'This is it'
            }
        },
        series: [{
            name: "Test",
            data: newdata
        }]
});

 }

问题是,在使用ajax时,它只绘制一个没有数据的图形,但当我使用“预填充”数组(如我注释掉的数组)时,它工作得很好

newdata
是一个字符串,当您拆分它时,它的片段就是字符串

“-20,0,0,7,0,0100”。拆分(“,”=[“-20”,“0”,“0”,“7”,“0”,“0”,“100”]

Highcharts需要数字,因此在拆分后,
parseInt
将它们拆分为数字:

var rawdata = "-20,0,0,7,0,0,100";
var strdata = rawdata.split(",");
var newdata = []
for (var i = 0; i < strdata.length; i++)
{
   newdata.push(parseInt(strdata[i]));
} 
var rawdata=“-20,0,0,7,0,0100”;
var strdata=rawdata.split(“,”);
var newdata=[]
对于(变量i=0;i

Fiddle.

检查是否通过将数据类型作为对象的ajax发出响应。因为highcharts可以工作,所以响应的数据类型为object

如果它作为字符串返回,则使用
eval(“(“+response+”)

如果在创建图表函数中使用console.log(newdata),输出结果是什么?答案已解决,但感谢您尝试帮助我:D
var rawdata = "-20,0,0,7,0,0,100";
var strdata = rawdata.split(",");
var newdata = []
for (var i = 0; i < strdata.length; i++)
{
   newdata.push(parseInt(strdata[i]));
}