高图表不使用加载 ajax 的数组进行渲染
Highcharts not rendering with array loaded with ajax
我刚开始使用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'] . ",";
}
?>
其输出如下所示:-20,0,0,7,0,0,100
还有我的 AJAX 函数:
function ajax(website, element, callback) {
var http = null;
var http = new XMLHttpRequest();
var url = website;
if(http!=null){
http.open("POST",url,true);
http.onreadystatechange = function(){
if(http.readyState == 4){
var text = http.responseText;
callback(text, element);
}
}//Ende readychange
http.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
http.send();
}//Ende if(http2!=null)
}//Ende Funktion
回调是我的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,0,100".split(",") = ["-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]));
}
在这里摆弄。
检查通过 ajax 的响应是否将数据类型作为对象。因为高图表将工作,所以响应是数据类型作为对象。
如果它作为字符串返回,则使用eval('(' + response + ')')
相关文章:
- 如何在Javascript中解析AJAX数组的特定部分
- 访问$.ajax()函数中的两个不同数组
- 作为一个二维数组,从ajax接收
- 如何在不使用ajax的情况下将pair值添加到数组并发送到django中的视图
- 将数组从ajax传递到python(Tornado)
- ajax成功地将数组中的数据放入表中各自的输入中
- jQuery Ajax数组序列化错误
- AJAX jquery json将数组发送到php
- 如何显示从Ajax请求返回的数组.使用Yii2
- 后关联数组使用jquery ajax
- 将ajax数组缓冲区响应绘制到画布中
- 使用Javascript数组或JSON来存储AJAX请求的返回值,以备将来使用
- 通过iron-ajax初始化对象数组(链接到caller's元素的响应)
- 发送数组 ajax.request 原型
- 遍历两个 JSON 数组 Ajax
- 发送不可编辑的JSON数组&Ajax
- 浏览器崩溃-复选框数组Ajax (PHP)
- 多维数组的多复选框组值jQuery post数组AJAX
- $内部的函数结果数组.Ajax被转换为字符串
- 传递键值数组AJAX