2013-03-12 112 views
0

我正在構建PhoneGap Android應用程序,並且有一個用Javascript加載的SQLLite數據庫。數據庫已正確加載並證明數據存在。從sqllite數據庫加載數據並打印到html元素

我正在使用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 --> 

這裏的股利 - 你可以看到我試圖從開<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); 
} 

回答

2

嘗試使用「.pagebeforeshow」。 「.pagebeforeshow」將在動畫開始之前在新頁面上觸發。

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