2013-12-20 129 views
0

我目前正在使用phonegap和sqllite的一個小應用程序。 填充數據庫工作正常;但我需要一個函數,它返回一個html字符串(對於一個id)。從sql請求獲取返回值

我有我「改良」我的目的互聯網這個小片段,但它不工作像預期:(

function getPriceFromDatabase(id) { 

var result = []; 

// Query the database 
// 
function queryDB(tx) { 

    tx.executeSql('SELECT * FROM PRICEFTS WHERE pid MATCH ' + id, [], querySuccess, errorCB1); 

} 

// Query the success callback 
// 
function querySuccess(tx, results) { 
    var len = results.rows.length; 


    for (var i = 0; i < len; i++) {  
     result.push('<span class="'+results.rows.item(i).priceart+'">'+results.rows.item(i).price+'</span>'); 
    } 


} 

// Transaction error callback 
// 

function errorCB1(err) { 
    console.log("Error SQL: " + err.code); 
} 


// Transaction success callback 
// 

var db = window.openDatabase("sucheDB", "1.0", "Suche DB", 52428800); 
db.transaction(queryDB, errorCB1); 



return result.join(''); 

} 

這裏是我的示例事件:

$("#price_button").click(function() { 

    var p = getPriceFromDatabase(88361); 
    console.log(p); 
    $('#price').html(p); 

}) 

(我總是得到 '未定義' 的結果)

有人可以幫忙嗎?

感謝!:)

回答

0

你應該提供上的成功回調至db.transaction呼叫,像這樣:

db.transaction(queryDB, errorCB1, querySuccess); 

而且這個功能可能是異步,所以你return之前的交易可能完成執行。