从sqlite数据库加载数据&打印到html元素

时间:2013-03-12 04:27:41

标签: javascript database sqlite cordova onload

我正在构建一个PhoneGap Android应用程序,并且有一个用Javascript加载的SQLLite数据库。数据库已正确加载并且数据存在已经过验证。

我正在使用JQuery Mobile Framework进行GUI。在应用程序的一个子页面中,我尝试从数据库中加载元素并将其作为列表元素打印出来 - 我一直在尝试使用开始列表标记中的'onload =“”'调用来执行此操作,但是,没有调用任何函数 - 尝试通过简单的警报执行此操作以确保发生某些事情,但却没有任何结果。

非常高兴自己玩打印数据库结果,我只是想让功能立即调用。任何帮助,将不胜感激。代码如下:

<div data-role="page" id="cachelist"> <!-- Start of cache list screen -->
        <header data-role="header">
            <h1>Cache List</h1>
            <a href="#home" data-icon="home">Home</a>
        </header>
        <article data-role="content">
            <ul data-role="listview" data-filter="true" id="cachelistList" onload="alert('test')">

            </ul>
        </article>
</div> <!-- End of cache list screen -->

这是div - 你可以看到我试图从开场<ul>打电话。

我也尝试在文档的<head>中调用一个JS函数,我认为这不会产生任何影响 - 但它只是以防万一。

<ul onload="cacheListPrint()">
</ul>


function cacheListPrint() {
    alert("Getting this far");
    db.transaction(queryDBPrint, errorCB);
}

function queryDBPrint(tx) {
    tx.executeSql('SELECT * FROM cache', [], querySuccessPrint, errorCB);
}

function querySuccessPrint(tx, results) {
    var rows = results.rows;
    var len = rows.length;
    if(len > 0) {
        for (var i=0; i<len; i++){
            document.getElementById('cachelistList').innerHTML += 
        '<li><h1>' + rows.item(i).name + '</h1></li>';
        }
    }
}

function errorCB(err) {
    alert("Error processing SQL: "+err.code);
}

1 个答案:

答案 0 :(得分:2)

尝试使用&#34; .pagebeforeshow&#34;。 &#34; .pagebeforeshow&#34;将在动画开始前在新页面上触发。

$( '#yourPageID' ).live( 'pagebeforeshow',function(event){
    cacheListPrint();
});