我已经下载了Flot 库并且一直在玩。
我了解 Flot 库的工作原理以及如何绘制简单的图形。我正在努力解决的问题是从数据库中提取数据并将其传递到 Flot Graph 中,以便该图根据检索到的数据变得动态。
我相信您可以使用 JSON 函数将数据从数据库传递到 Flot Graph,但我不知道从哪里开始,有人可以帮我吗?任何示例代码或建议将不胜感激
我正在使用经典的 ASP 从数据库中提取数据。
我已经下载了Flot 库并且一直在玩。
我了解 Flot 库的工作原理以及如何绘制简单的图形。我正在努力解决的问题是从数据库中提取数据并将其传递到 Flot Graph 中,以便该图根据检索到的数据变得动态。
我相信您可以使用 JSON 函数将数据从数据库传递到 Flot Graph,但我不知道从哪里开始,有人可以帮我吗?任何示例代码或建议将不胜感激
我正在使用经典的 ASP 从数据库中提取数据。
我不确定动态是否是指“实时更新”(AJAX)。如果不是这种情况,那么下面的示例应该可以帮助您开始使用 flot 和经典 ASP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Example</title>
<!--[if IE]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
<script language="javascript" type="text/javascript" src="jquery.js"></script>
<script language="javascript" type="text/javascript" src="jquery.flot.js"></script>
</head>
<body>
<div id="placeholder" style="width:600px;height:300px;"></div>
<script id="source" language="javascript" type="text/javascript">
$(function () {
var d1 = [];
<%
SET ac = Server.CreateObject("ADODB.Connection")
ac.Open "driver={sql server}; server=localhost; database=db_name; uid=user; pwd=secret"
SET rs = Server.CreateObject("ADODB.Recordset")
SET rs = ac.Execute("SELECT data_x, data_y FROM data_log")
FOR EACH field IN rs.Fields
Response.Write "d1.push([" & field.data_x & ", " & field.data_y & "]);"
NEXT
%>
$.plot($("#placeholder"), [d1]);
});
</script>
</body>
</html>
有几件事你必须看。第一个 JSON。您需要知道 JSON 字符串的结构。例如,您可以像这样创建一个 JSON 字符串:
{"name":"Tom", "sales":200}
或者,如果有很多名称和销售额,则使用这样的数组:
{"names":["Tom", "Harry"], "sales":[200, 100]}
然后在 JavScript 中访问这些值...假设您有这样的 JSON 对象:
var myJSON = {"names":["Tom", "Harry"], "sales":[200, 100]};
document.write(myJSON.names[0]); //print out Tom
document.write(myJSON.sales[0]); //200
由于您想使用 AJAX 来获取此 JSON 对象,因此您可以创建一个 ASP 页面,该页面仅以正确的格式返回一个 JSON 字符串。例如:
Set rs = Conn.Execute("SELECT name, sales FROM employees")
If Not rs.EOF Then
Response.Write "{'names':["
Do Until rs.EOF
Response.Write rs("name")
Response.Write ","
rs.MoveNext
Loop
rs.Close : Set rs = Nothing : Conn.Close : Set Conn = Nothing
Response.Write "]}"
%>
免责声明:这不是经过测试的代码,我已经快 10 年没有写过经典的 ASP 了!例如,确保不打印 final 等。
现在,这个链接有一些使用 AJAX 加载数据和更新图表的示例。所以你必须修改 URL 指向你生成 JSON 字符串的 asp 页面,并修改 onDataRecieved 函数以根据你自己的结构添加数据。
希望这会有帮助。