2016-09-28 56 views
6

您好我已经在我的项目中实现了一个SqlLite,并且我在Login.js中创建了数据库,但是我的问题是现在我需要更新一列另一个JS。 如何从另一个JS访问数据库变量。 代码A.js:如何访问一个Sql lite变量从一个Js到Cordova的另一个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); 
    } 
+0

将它存储在会话中或使其成为全局的 – vamsi

+0

雅我已经将它存储在会话中,而存储它是对象,但同时得到它是字符串格式和清空。这是抛出undefined – Piku

+0

分享你的代码,以便我们可以看到究竟发生了什么 – vamsi

回答

2

您的变量window.db位于全局范围内。所以你可以在它定义的同一页面的任何地方访问它。 我希望你提到的'Another JS'在同一页。如果它在不同的页面中,它将不起作用。

科尔多瓦应用程序应采用SPA(单页应用程序)设计。如果您不使用SPA,则需要在每个页面中定义所需的变量。请检查https://cordova.apache.org/docs/en/latest/guide/next/#1-spa-is-your-friend

+0

Another.JS是一个不同的JS,为什么它是不可能的 – Piku

相关问题