【问题标题】:Setting Javascript values from values in mySQL database从 mySQL 数据库中的值设置 Javascript 值
【发布时间】:2016-07-03 06:12:50
【问题描述】:

我已经彻底搜索了答案,但无法找到任何可以为我解决问题的东西。

我正在构建一个简单的 web 应用程序,它具有 java/mySQL 后端和 html/js 前端。在我的前端,我将数据库中的值与 chart.js 库一起使用来可视化数据。我在后端使用 Jersey 框架,并编写了在传递适当的 url 时将返回所需值的代码 - 例如:

http://localhost:8080/rest/database/chart/get/labels

返回

["test","test2","test3","test4","test5"]

我需要向我的图表传递图表上轴的名称数组。

现在,我的图表轴是带有占位符的名称,由 .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 的某些变体将允许我调用并返回数据库值并将它们设置为图表轴值,但我究竟该如何实现呢?

非常感谢任何帮助!

【问题讨论】:

    标签: javascript java mysql charts


    【解决方案1】:

    如果您需要处理来自 AJAX 的数据,您可以更改服务器输出数据的方式。我会推荐一个 JSON - 易于在 JS 和服务器上使用。 但是,如果您需要使用数据格式为 '["test","test2","test3","test4","test5"]',您可以尝试使用类似这样的格式

    var myarray=eval('["test","test2","test3","test4","test5"]');
    

    但请记住! eval 可能不安全!见https://stackoverflow.com/a/86580/3129342

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 2012-11-13
    • 1970-01-01
    相关资源
    最近更新 更多