データベースの ORDERS テーブルから注文を取得する SQLite クエリがあります。
qry.executeSql("SELECT o.ID AS orderIDx, o.token AS orderTokenx, r.retailerName AS retailerNamex FROM orders AS o LEFT JOIN retailers AS r ON r.token = o.retailerID ", [], function(tx, results){
//query was a success
var len = results.rows.length;
for (var i=0; i<len; i++){
var orderID = results.rows.item(i).orderIDx;
var orderToken = results.rows.item(i).orderTokenx;
var retailerName = results.rows.item(i).retailerNamex;
//create container for order and populate it with orderItems in the below query
qry.executeSql("SELECT * FROM orderItems WHERE orderID = '"+orderToken+"' ", [], function(tx1, results1){
var len1 = results1.rows.length;
for (var i1=0; i1<len1; i1++){
$('.orderItem.'+orderID+' p').append(results1.rows.item(i1).productName);
}
});
}
});
これは私の質問ですが、多くの雑然としたものを取り除いたので、必要なものは残しました。
そのため、注文テーブルをループして、注文固有の情報を 1 つのセクションに表示しようとしています。その中で、ドロップダウンとして各注文項目を表示します。したがって、注文ループ内では、その ID を使用して orderItems などを呼び出していますが、最後のコンテナーに orderItem クエリの結果を追加するだけです。
これは、クエリが非同期であるためだと思いますが、注文クエリの次のループが実行される前に orderItem コンテナーを作成する方法がわかりません:/
私は非同期jQuery AJAXのもので同じことをするのに苦労しています..これがリンクされている場合、説明は素晴らしいでしょう.
また、外側のクエリで order テーブルと orerItems テーブルを結合するために JOIN を使用する予定でしたが、アイテムと注文を 1 つのループ内でループする方法がわかりませんでした。