0

HTML5とJS(phonegap)でアプリを開発しましたが、JSONをローカルのSQLiteにインポートする必要があります。外部サーバーからインポートするために以下のコードがあります

        $.ajax({
        url: 'path_to_my_file',
        data: {name: 'Chad'},
        dataType: 'jsonp',
        success: function(data){
                var count = data.posts.length;
                $.each(data.posts, function(i,post){
                    notesdb.transaction(function(t) {
                    t.executeSql('INSERT into bill (barcode, buildingcode, buildingaddress, flatname, flatdescription, entryseason, period, amount, pastpayments, todaypayments, receiptno) VALUES (?,?,?,?,?,?,?,?,?,?,?);',
                        [post.Id, post.Code, post.Address, post.Name, post.Description, post.EntrySeason, post.Period, post.Revenue, post.PastPayments, post.todaypayments, post.receiptno],
                        function(){ 
                            bill = bill + 1;
                            $('#mycontent article').html(bill + '/' + data.posts.length + ' <strong>bill</strong>');

                            if (--count == 0) {
                                $('#mycontent article').html('<strong>bill - <font color=green>OK</font></strong>');
                            }
                        }
                    );
                    });
                });
            }
    });

たとえば、ローカルのjson varをインポートする必要がある場合、コードをどのように変換すればよいですか?

var mybilljson = jQuery.parseJSON( billjson );

同じSQLiteに?

4

1 に答える 1

0

サーバーsuccessからデータを受信すると、関数が呼び出されます。
に渡された関数はeach、 の各要素に対して呼び出されpostsます。
に渡された関数はtransaction、トランザクションの開始時に呼び出されます。コマンドの実行が終了したときに呼び出される get に
渡された関数。executeSql

サーバー リクエストはなく、請求書が 1 つ含まれていると想定mybilljsonされるため、最初の 2 つを削除する必要があります。結果は次のようになります。

var mybill = ...;
notesdb.transaction(function(t) {
    t.executeSql('INSERT INTO bill(...) VALUES(...)',
                 [mybill.Id, ...],
                 function() {
                     // whatever
                 });
});
于 2012-09-20T18:26:59.930 に答える