我正在使用jQuery Mobile1.1.1和PhoneGap开发一个iPad应用程序。我使用html5sql.js进行数据库操作,它工作得很好。
如何在for循环中使用html5sql.process()?
例如:
html5sql.process( {
"sql": "select id,count from my_table",
"data": [],
"success": function(transaction, results){
},
function(transaction, results){
for(var i = 0; i < results.rows.length;i++){
/// Line 5
html5sql.process( {
"sql": "select count(*) from my_table1 where id= ?",
"data": [results.rows.item(i).id],
"success": function(transaction, resultsD){
},
function(transaction, resultsD){
if(results.rows.item(i).count == resultsD.rows.length){
//do my task
}
},function(){}
);
}
},function(){}
);我没有从这段代码中得到任何输出。当我检查它时,它只工作到第5行,之后的代码不工作。是什么导致了问题?
发布于 2012-07-29 00:22:44
看起来,你的代码的整个结构是错误的。你不应该在循环内请求数据库,而应该在外部请求。下面是我的代码中生成jQM列表视图的一段代码。查询结果被放入一个数组中,javascript从数组中解析出实际的HTML代码。希望能有所帮助
function showRecords() {
document.getElementById('results').innerHTML = '<li data-role="list-divider">Header</li>';
db.transaction(function(tx) {
tx.executeSql("SELECT * FROM OrderList", [], function(tx, result) {
for (var i = 0, item = null; i < result.rows.length; i++) {
item = result.rows.item(i);
document.getElementById('results').innerHTML +=
'<li data-role="fieldcontain" class="ui-field-contain ui-body ui-br ui-li ui-li-static ui-body-c">'
+'<a href="#"><p style="font-weight:bold;">'+item['catNo']+'</p>'
+'.......................
+'</li>';
}
$('#results').listview('refresh',true);
});
});
}https://stackoverflow.com/questions/11673342
复制相似问题