2012-03-14 30 views
0

こんにちは、私はモバイルアプリで、私は次の問題があります。関数内のjquery関数のループ

テーブルの請求書から各バーコードのテーブル請求書からデータを選択したいと思います。ここ

は私はコード

 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 APPENDに私はrow.receiptnoとrow.amountのために受け取る...

私はこだわっています助けてください。

答えて

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); 
} 
+0

を。あなたの時間のthx – kosbou

+0

@ user1081978これはよくある間違いです。私はあなたがこれをやり直すことを学んだことを願っています;) –