Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PhoneGap和JavaScript的SQlite数据库_Javascript_Html_Sqlite_Cordova - Fatal编程技术网

使用PhoneGap和JavaScript的SQlite数据库

使用PhoneGap和JavaScript的SQlite数据库,javascript,html,sqlite,cordova,Javascript,Html,Sqlite,Cordova,我正在使用PhoneGap和SQLite数据库 我试着这样做: 我使用了一个函数savedthing(): 和一个函数getSavedThing(): 问题是,当调用函数getSavedThing()时,只会发出前两个警报(警报(“一”)、警报(“两”),然后调用警报(“getSavedThing()之后”) 但我希望所有费用警报(“一”)、警报(“二”)、警报(“三”)警报(“四”)警报(“五”)、警报(“六”),在警报(“getSavedThing()之后”)之前发布;上诉 警报的顺序应为:

我正在使用PhoneGap和SQLite数据库

我试着这样做:

我使用了一个函数savedthing():

和一个函数getSavedThing():

问题是,当调用函数getSavedThing()时,只会发出前两个警报(警报(“一”)、警报(“两”),然后调用警报(“getSavedThing()之后”)

但我希望所有费用警报(“一”)、警报(“二”)、警报(“三”)警报(“四”)警报(“五”)、警报(“六”),在警报(“getSavedThing()之后”)之前发布;上诉

警报的顺序应为:

  • 警报(“getSavedThing()之前”)
  • 警报(“一”)
  • 警报(“两”)
  • 警报(“三”)
  • 警报(“四”)
  • 警报(“五”)
  • 警报(“六”)
  • 警报(“getSavedThing()之前”)

  • 有人能帮我吗?

    数据库操作是异步执行的。如果要在最后一次数据库操作后执行
    警报(“getSavedThing()”)
    ,则需要从回调函数
    getIt()
    调用它

    您可以使用PhoneGap进行数据访问,您会发现它非常容易使用:

    var db = new MyDB();
    //query all users
    var users = db.Users.toArrary(callback);
    

    你能给我们看看firebug或类似版本的输出吗?我假设getSavedThing()中的函数应该在它之外。就是这样!这就是为什么你使用stackoverflow:-)喜欢它!非常感谢!
    function getSavedThing(){
    
            alert("ONE");
            var db = window.openDatabase("Database", "1.0", "Database", 200000);
        db.transaction(populateDB, errorCB, successCB);
            alert("TWO");
        function populateDB(tx) {
    
            alert("THREE");
        }
    
        function errorCB(tx, err) {
            alert("Error processing SQL: " + err);
        }
    
        function successCB() {
            alert("FOUR");
            db.transaction(getData);
        }
    
        function getData(tx) {
                    alert("FIVE");
            tx.executeSql('SELECT * FROM SETTINGS', [], getIt, errorCB);
        }
        function getIt(tx, results) {
                       alert("SIX");
                var savedthing = results.rows.item(0).data;
    
    
        }
    
    
    
    }
    
    function useSavedThing() {
        alert("BEFORE getSavedThing()");
        var afterGet = function(){
            alert("AFTER getSavedThing()");
        }
        getSavedThing( afterGet ); /*pass the callback function to getSavedThing*/
    }
    
    function getSavedThing( callback ){
    
        alert("ONE");
        var db = window.openDatabase("Database", "1.0", "Database", 200000);
        db.transaction(populateDB, errorCB, successCB);
        alert("TWO");
        function populateDB(tx) {
            alert("THREE");
        }
    
        function errorCB(tx, err) {
            alert("Error processing SQL: " + err);
        }
    
        function successCB() {
            alert("FOUR");
            db.transaction(getData);
        }
    
        function getData(tx) {
            alert("FIVE");
            tx.executeSql('SELECT * FROM SETTINGS', [], getIt, errorCB);
        }
    
        function getIt(tx, results) {
             alert("SIX");
             var savedthing = results.rows.item(0).data;
             callback.call(); /*execute the callback function*/
        }
    }
    
    var db = new MyDB();
    //query all users
    var users = db.Users.toArrary(callback);