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在事务开始时被调用。当命令完成执行时,
传递给被调用的函数。executeSql

您没有服务器请求,我假设mybilljson其中包含一张账单,因此您必须放弃前两张。结果将是这样的:

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