我在 .hta 中使用 MS Access .mdb 文件来存储数据和 Javascript 插件 AccessDB.js (accessdb.org) 来连接和查询 mdb 文件。但我似乎无法让 jqGrid 显示 SQL 查询的结果。
resultSet 是 SQL 查询的结果。它似乎显示在输出到灰色 div 框的 getset() 函数中。但是由于某种原因,jqGrid 没有处理这个变量,因为我将数据设置为 resultSet 变量“data: resultSet”
var myDB = new ACCESSdb("Database/data.mdb", {showErrors:true});
var SQL = "SELECT * FROM test";
var resultSet = myDB.query(SQL);
jQuery(document).ready(function () {
jQuery("#list4").jqGrid({
datatype: "local",
data: resultSet,
height: 250,
colNames:['ID','name','phone'],
colModel:[
{name:'ID',index:'ID', width:60, sortable:false},
{name:'name', index:'name', width:120, sortable:false},
{name:'email', index:'phone', width:150, sorttype:"float"},
],
multiselect: true,
viewrecords: true,
height: "100%",
caption: "jqGrid and AccessDB"
});
getset()
});
function getset() {
var myDB = new ACCESSdb("Database/data.mdb", {showErrors:true});
var SQL = "SELECT * FROM test";
var resultSet = myDB.query(SQL)
$("#outbox").html(resultSet)
}
但如果手动完成,它将显示在表格中。
var resultSet = [{"ID":"1","name":"john","email":"john@gmail.com"}]
有人知道为什么它没有显示吗?
更新:如果我通过 eval() 函数传递 resultSet 变量,它似乎可以工作。
var qry = myDB.query(SQL)
var resultSet = eval(qry)
但我在某处读到 eval() 不推荐用于注入漏洞 什么是一个好的选择?虽然我想这应该不是问题吧?因为我在没有外部连接的私人服务器上运行它..
更新2:
我让它与 JSON.parse() 一起工作!
var qry = myDB.query(SQL)
var resultSet = JSON.parse(qry)
JSON 摇滚!