嗨,我在移动应用程序中,我有以下问题。
我想从表格账单中为每个条形码从表格账单中选择数据。
这是我的代码
t.executeSql('SELECT barcode, amount, receiptno FROM billpayments WHERE receiptno > 0',
[], function(t, resultcollect) {
len = resultcollect.rows.length;
for (i = 0; i < len; i += 1) {
row = resultcollect.rows.item(i);
t.executeSql('SELECT barcode, buildingcode, flatdescription FROM bill WHERE barcode = ?',
[row.barcode], function(t, collectaddress) {
mybill = collectaddress.rows.item(0);
list.append('' + mybill.buildingcode + ',' + mybill.flatdescription + ',' + row.receiptno + ',' + row.amount + '</br>');
});
}
tameio = tameio.toFixed(2);
list.append('<table border="1">' + items.join('\n') + itemspay.join('\n') + '</table><p>' + tameio + '');
});
但在html追加中我收到row.receiptno和row.amount所有条形码的最后一个值......
请帮助我被困住。
答案 0 :(得分:0)
在迭代过程中,row
被一遍又一遍地覆盖。要解决此问题,请使用辅助函数创建一个新范围,其中row
是局部变量:
function dummy(i) {
var row = resultcollect.rows.item(i); // <-- Local variable
t.executeSql('SELECT barcode, buildingcode, flatdescription FROM bill WHERE barcode = ?',
[row.barcode], function(t, collectaddress) {
var mybill = collectaddress.rows.item(0); // <-- LOCAL variable!
list.append(mybill.buildingcode + ',' + mybill.flatdescription
+ ',' + row.receiptno + ',' + row.amount + '</br>');
});
}
for (i = 0; i < len; i += 1) {
dummy(i);
}