2013-04-04 46 views
0

为什么我无法显示表项?在HTML中显示带有JavaScript的表项目

我的代码:

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); 
      } 

} 

两人都不工作。我想以某种方式显示结果。也许在div中的HTML内部的for循环中。

另外,浏览器不会保存数据补充:

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)'); 
    } 

我添加数据形成的输入,但一旦我刷新,它不见了。怎么样?

回答

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); 
    } 
+0

噢伙计!谢谢!它记录它,但它显示数据为未定义。为什么? – user2238744 2013-04-04 13:10:52

+0

检查如何填充数据库。你可以参考这里http://docs.phonegap.com/en/2.5.0/cordova_storage_storage.md.html#SQLTransaction – wmfairuz 2013-04-04 13:13:38

相关问题