我有以下代码:
displayOrders: function(){
function getRetailerName(retailerID, callback){
var retailerName;
db.transaction(function(qry){
qry.executeSql("SELECT retailerName FROM retailers WHERE token = '"+retailerID+"' ", [], function(tx, results1){
var len1 = results1.rows.length;
var retailerName;
for (var i1=0; i1<len1; i1++){
retailerName = results1.rows.item(i1).retailerName;
callback(retailerName);
}
});
});
}
db.transaction(function(qry){
qry.executeSql("SELECT * FROM orders", [], function(tx, results){
//query was a success
var len = results.rows.length;
for (var i=0; i<len; i++){
var orderTime = results.rows.item(i).orderTime;
var retailerName;
getRetailerName(results.rows.item(i).retailerID,function(name) { //this uses a callback function... need to because request to DB is a
retailerName = name ;
$('#orderHistoryCollapsible').append('<div data-role="collapsible" data-collapsed="false"><h3>'+retailerName+' - '+orderTime+'</h3><p>Im the collapsible set content for section 1.</p></div>');
$(".orderHistoryCollapsible").collapsibleset();
$(".orderHistoryCollapsible").collapsibleset('refresh');
});
}
});
});
所以基本上代码运行两个单独的数据库查询并检索要放入列表视图的数据。getRetailerName 函数提供了一个回调,该回调在下面的查询中使用,它将两组数据添加到“orderHistoryCollapsible”div。
我的问题是,也意味着插入 DOM 的 orderTime 值每次都返回循环中的最后一个值。好像这两个查询都需要作为回调提供?但是我不确定如何将数据附加到正确的位置..
任何帮助,将不胜感激