2016-09-28 12 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

相關問題