【问题标题】:Getting jqGrid to display SQL results via AccessDB plugin通过 AccessDB 插件让 jqGrid 显示 SQL 结果
【发布时间】:2013-05-17 06:06:40
【问题描述】:

我在 .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 摇滚!

【问题讨论】:

    标签: javascript jquery sql jqgrid hta


    【解决方案1】:

    首先,我建议您将您使用的整个代码放在jQuery(document).ready(function () {/*here!!!*/}); 中。第二:您可能应该将'ID' 更改为'id' 作为列名。我建议您从colModel 中删除所有index 属性。然后你应该修复语法错误:参数height 在代码中包含两次height: 250height: "100%")。然后我推荐你使用 Internet Explorer 的开发者工具(按 F12 启动),选择“脚本”选项卡,在resultSet = myDB.query(SQL); 行设置断点并验证在resultSet 变量中返回的结果。它应该是一系列项目。

    【讨论】:

    • 谢谢!我有一些整理工作要做。感谢开发工具提示
    猜你喜欢
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-05
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多