【发布时间】:2017-02-06 10:49:17
【问题描述】:
嗨,我已经在我的项目中实现了一个 SqlLite,我正在 Login.js 中创建数据库,但我的问题是现在我需要从另一个 JS 更新一个列。 如何从另一个 JS 访问数据库变量。 代码 A.js:
function onDeviceReady() {
window.db = window.openDatabase("SP_DB", "1.0", "SPDB", 200000);
};
现在我需要从另一个 JS 访问该 window.db 以添加或更新列。如何做到这一点
代码 B.js: 在这里我需要访问那个 window.db 变量,我不想再次创建数据库。
var saveimg = document.getElementById("saveimg");
saveimg.addEventListener('click', goInsert, false);
function goInsert() {
window.db.transaction(insertDB, errorCB, successCB);
}
function insertDB(tx) {
tx.executeSql('INSERT INTO SP(FirstName,LastName,Address) VALUES ("' + document.getElementById("txtFirstName").value + '","'
+ document.getElementById("txtLastName").value + '","' + document.getElementById("txtAddress").value + '")');
}
function errorCB(err) {
alert("Error processing SQL: " + err.code);
}
function successCB() {
alert("success!");
db.transaction(queryDB, errorCB);
}
function queryDB(tx) {
tx.executeSql('SELECT * FROM SP', [], querySuccess, errorCB);
}
【问题讨论】:
-
将其存储在会话中或使其全局化
-
是的,我已经将它存储在 Session 中,虽然存储它是对象,但同时获取它是字符串格式并且为空。它正在抛出未定义的
-
分享您的代码,以便我们了解究竟发生了什么
-
请找到更新后的代码
-
你试过使用Cordova-sqlite-storage插件吗?您应该能够像
window.sqlitePlugin.openDatabase在任何页面上使用它,包括在deviceReady事件触发后对cordova.js的引用。
标签: javascript jquery node.js sqlite cordova