我已经彻底搜索了一个答案,并且无法跟踪任何可以解决此问题的事情。
我正在构建一个具有java / mySQL后端和html / js前端的简单webapp。在我的前端,我使用数据库中的值与chart.js库一起可视化数据。我在后端使用Jersey框架并编写代码,在传递适当的url时返回所需的值 - 例如:
http://localhost:8080/rest/database/chart/get/labels
返回
[&#34;测试&#34;&#34; TEST2&#34;&#34; TEST3&#34;&#34; TEST4&#34;&#34; TEST5&#34;] < / p>
我需要在图表上为图表传递一系列名称数组。
现在,我的图表轴是带占位符的名称,由.js脚本决定:
function loadChartLabels() {
var xhttp = new XMLHttpRequest();
var returnArray = [];
xhttp.onreadystatechange = function () {
if (xhttp.readyState == 4 && xhttp.status == 200) {
returnArray = xhttp.responseText;
}
};
xhttp.open("GET", "http://localhost:8080/rest/database/chart/get/labels", true);
xhttp.send();
return ["Eating", "Drinking", "21Test", "21Test1", "21Test2", "21Test3", "21Test4"];
//window.alert(returnArray.toString);
//return returnArray;
}
这是我的图表脚本:
var testArray = loadChartLabels();
var radarData = {
labels: testArray,
datasets: [
{
label: "My First dataset",
fillColor: "rgba(140,70,120,0.5)",
strokeColor: "#ACC26D",
pointColor: "#fff",
pointStrokeColor: "#9DB86D",
data: [65, 59, 90, 81, 56, 55, 40]
},
{
label: "My Second dataset",
fillColor: "rgba(172,194,132,0.4)",
strokeColor: "#ACC26D",
pointColor: "#fff",
pointStrokeColor: "#9DB86D",
data: [28, 48, 40, 19, 96, 27, 100]
}
]
};
var habits = document.getElementById("habits").getContext("2d");
new Chart(habits).Radar(radarData);
我假设某些AJAX变体允许我调用并返回数据库值并将它们设置为图表轴值,但我究竟该如何实现?
非常感谢任何帮助!
答案 0 :(得分:-1)
如果您需要处理来自AJAX的数据,您可以更改服务器输出数据的方式。我推荐一个JSON - 在JS和服务器上也很容易使用。 但是,如果您需要使用数据格式为'[“test”,“test2”,“test3”,“test4”,“test5”]',您可以尝试使用类似的东西
PDO
但请记住! Eval可能不安全!见https://stackoverflow.com/a/86580/3129342