0

为什么我不能显示表格项?

我的代码:

function get(){
    db.transaction(function(tx){

        tx.executeSql('SELECT * FROM ENTRIES', []);
        function show(){
            var len = results.rows.length, i;
            for(i=0; i < len; i++){
                alert(results.rows.item(i).text);
            }
        }
    });
}

还有这个:

function show(tx, results){

    var len = results.rows.length;
    for(i=0; i < len; i++){
                var row = results.rows.item(i);
                console.log(rows.entry);
            }

}

它们都不起作用。我想以某种方式显示结果。也许在fordiv 中的 HTML 内的循环中。

另外,浏览器不会保留添加的数据:

function populateDB(tx) {
         tx.executeSql('DROP TABLE IF EXISTS ENTRIES');
         tx.executeSql('CREATE TABLE IF NOT EXISTS ENTRIES (id integer primary key autoincrement, entry text)');
         tx.executeSql('INSERT INTO ENTRIES (entry) VALUES (5)');
    }

我从输入中添加数据,但是一旦刷新,它就消失了。如何?

4

1 回答 1

0

你的 javascript 看起来不对。从文档中, db.transaction 有 3 个参数。

db.transaction(populateDB, errorCB, successCB);

你可以这样做:

    function queryDB(tx) {
        tx.executeSql('SELECT * FROM ENTRIES', [], querySuccess, errorCB);
    }

    // Query the success callback
    //
    function querySuccess(tx, results) {
       var len = results.rows.length;
       console.log("ENTRIES table: " + len + " rows found.");
       for (var i=0; i<len; i++){
           console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data =  " +                results.rows.item(i).data);
       }
    }

    // Transaction error callback
    //
    function errorCB(err) {
        console.log("Error processing SQL: "+err.code);
    }
于 2013-04-04T07:10:02.237 回答